У меня есть связка на Button
в моем QML
приложении.
Поскольку на одной странице много кнопок, пользователю может быть трудно увидеть, какая кнопка была нажата последней!
Поэтому я хотел бы изменить последний шрифт кнопки, чтобы указать, что он был нажат, но позже, когда нажата другая кнопка, я бы хотел восстановить ее шрифт снова.
Я не могу найти хороший способ сделать это.
Я попытался подключить все кнопки к ButtonGroup
, но мне нужно перебрать все кнопки, чтобы получить set underline to false
, но, тем не менее, я пытаюсь сделать это, я получаю другой тип ошибки.
См. Пример ниже:
Button {
text: qsTr("Open")
ButtonGroup.group: buttonGroup
font.pointSize: 20; font.family: "Courier"
onPressed: { /* some action here*/ }
onReleased: { /* some action here*/ }
}
Button {
text: qsTr("Close")
ButtonGroup.group: buttonGroup
font.pointSize: 20; font.family: "Courier"
onPressed: { /* some action here*/ }
onReleased: { /* some action here*/ }
}
ButtonGroup {
id: buttonGroup
function underlineButtons(underlined) {
for (var i = 0; i < buttons.length; ++i) {
children[i].font.underline = underlined;
}
}
onClicked: {
console.log(" -------------- buttonGroup Clicked: ", button.text)
underlineButtons(false) // restore old buttons
button.font.underline = true // mark the last button clicked
}
}
Я получаю следующую ошибку, что когда-либо делаю, пытаясь получить доступ к элементу children.
qrc:/main.qml:65 ((null)): qrc:/main.qml:65: ReferenceError: children is not defined