假设我们有以下自定义 QML 组件。
MyComponent.qml
//Contents for MyComponent.qml
import QtQuick 2.0
QtObject{
property real myProperty
...
}
Test.qml
import QtQuick 2.0
Item {
property var myComponent: MyComponent
onMyComponentChanged: console.log("MyComponent changed!");
}
当更改 myComponent 中的任何属性时,我希望触发 onMyComponentChanged()。实现此目标的最佳方法是什么?
最佳答案
在 QML 中,大多数属性都有 onChanged 事件。例如;
MyComponent {
property string name: "Super"
}
即 on
+ Property + Changed
信号将被发射(属性的第一个字母将大写)- 导致 onNameChanged
Item {
id: mainItem
property MyComponent myCustomComponent: MyComponent {
onNameChanged: mainItem.handleMyComponentChange()
}
function handleMyComponentChange() {
-----
}
myCustomComponent.name="Duper" // triggers handleMyComponentChange()
}
关于javascript - QML:如何在自定义组件中触发onChanged?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32013618/