引言
用了N年的QWidget,因为项目需求而开始学习QML做一些动态的界面,下面开始记录学习QML的新路历程。
注:学习有误的望指点一二,不喜勿喷!!!
QML属性绑定
属性绑定就是建立目标对象对其他对象的依赖关系,当其他对象值发生改变时,目标对象也会改变,自动更新属性,达到动态属性的效果。
绑定到不可访问的属性
有时,有必要将一个对象的属性绑定到另一个未由QML实例化的对象属性,例如C++导出到QML的类的属性。可以使用Binding类型来建立此依赖关系,将任何值绑定到任何对象的属性。
例如:在将“app.enteredText”属性映射到QML的C++应用程序中,可以使用Binding来更新enteredText属性。
TextEdit { id: myTextField; text: "Please type here..." }
Binding { target: app; property: "enteredText"; value: myTextField.text }
当text发生改变时,C++属性enteredText会自动更新。
条件绑定
在某些情况下,可能希望在满足特定条件时修改属性的值,否则不修改。通常,使用直接绑定是无法实现的,因为必须把所有可能的分支都提供值。
例如,每当释放鼠标时,下面的代码段都会