Не позволяйте QML MouseArea фокусироваться при нажатии
В моем приложении у меня есть TextArea
и под ним панель инструментов с Button
Предметы. Всякий раз, когда Button
нажимается, TextArea
теряет фокус и скрывает виртуальную клавиатуру (что правильно). Но что, если я хочу TextArea
чтобы сосредоточиться, даже если Button
был нажат?
В SailfishOS, Button
это просто MouseArea
, а не QML Button
, Это означает, что нет собственности Button.activeFocusOnPress
что я мог бы установить false
, Есть ли способ повторить это поведение для MouseArea
?
Вот некоторый код:
TextArea {
id: editor
width: parent.width
height: 200
anchors.top: pageHeader.bottom
anchors.bottom: toolbar.top
}
ListModel {
id: textNavButtons
ListElement {buttonText: "left"}
ListElement {buttonText: "right"}
ListElement {buttonText: "tab"}
ListElement {buttonText: "home"}
ListElement {buttonText: "end"}
}
Row {
id: toolbar
anchors.bottom: parent.bottom
width: parent.width
height: 80
Repeater {
id: toolbarRepeater
model: textNavButtons
property int modelCount: model.count
delegate: Button {
text: buttonText
width: parent.width / toolbarRepeater.modelCount
onClicked: {
console.log("I was clicked: " + text);
}
}
}
}
РЕДАКТИРОВАТЬ: Моя цель состоит в том, чтобы использовать эти кнопки для вставки вкладок в текст или для навигации с помощью Home, End, Left, Right и т. Д. Я не уверен, что использование этих кнопок достигнет цели, но у меня не было никакой другой идеи. Мне тоже придется симулировать нажатие клавиш.
1 ответ
Теперь вы можете использовать
delegate: Button {
text: buttonText
width: parent.width / toolbarRepeater.modelCount
focusPolicy: Qt.NoFocus
onClicked: {
console.log("I was clicked: " + text);
}
}