C
默认状态限制
Qt Quick Ultralite 中的默认状态是固定的,只包含定义在同一 QML 文件中 QML 对象所定义的属性绑定。然而,Qt Quick 的默认状态是组件当前属性及其值的快照。此快照在切换回默认状态时恢复。
// MyItem.qml Button { id: root states: [State { name: "state1"; PropertyChanges { target: root; x: 15 } }] x: 5 // defines the default state value onClicked: { root.x = 10 root.state = "state1" // x changes to 15 root.state = "" // x changes to 5, not to 10 } } // Other.qml MyItem { x: 11 // does not change the default state value of x to 5 }
解决方案
您可以通过将对象的属性绑定到一个本地声明的属性上,以创建可定制的默认状态来解决这个问题。
// MyItem.qml Text { property string defaultText: "default state" text: defaultText // this generates a binding which is then used by the \l {qmltocpp} to generate a default state ... } // Other.qml MyItem { defaultText: "new default state" // MyItem displays this text instead of "default state" when swtiching to the default state }
在某些 Qt 许可证下可用。
了解更多。