@TheBootro 的好解决方案的替代方案,它避免了冗余tmp
变量:结果你可以自己调用“更改”信号。
例如:
mainwindow.numColsPerRowChanged()
无需使用emit
,该技术可以在 QML 组件中使用。例如:
Item {
id: root
property int selectedSetting: 0
property var selectedOptions: [1, 0, 3, 1]
Keys.onPressed: {
event.accepted = true
switch (event.key) {
case Qt.Key_Left:
selectedOptions[selectedSetting] -= 1
root.selectedOptionsChanged(); //force the signal so bound properties will pick up the change
break;
case Qt.Key_Right:
selectedOptions[selectedSetting] += 1
root.selectedOptionsChanged() //force the signal so bound properties will pick up the change
break;
}
}
}
有关该技术的另一个应用,请参阅:QML:如何在自定义组件中触发 onChanged?