QML类型说明-Binding
来源:互联网 发布:淘宝上哪些童装外贸店 编辑:程序博客网 时间:2024/06/05 15:27
Binding
ImportStatement:
Properties
property : string
target : Object
value : any
when : bool
DetailedDescription
绑定到无法访问的属性:
有时候,我们需要绑定一个不是QML直接实例化的组件的属性。一般是一个C++扩展的属性。在这种情况下,一般的绑定不工作,Binding允许我们绑定任何值到任何属性上。
例如,一个C++应用程序影射了一个叫app.enteredText的属性到QML,我们可以用Binding属性来更新app.enteredText,就像下面的例子这样:
TextEdit { id: myTextField; text: "Please typehere..." }
Binding { target: app; property: "enteredText";value: myTextField.text }
当TextEdit被更新,则C++属性也将更新。
根据条件绑定到单分支。
有时候,我们希望当某些条件为真时,属性的值能被控制。而所有其他情况下,我们放弃对属性的控制。这时候,直接完成绑定是不可能的,因为这需要为所有可能的分支提供值。
例如:
// produces warning: "Unable to assign [undefined]to double value"
value: if (mouse.pressed) mouse.mouseX
在上面的例子中,无论什么时候释放鼠标,警告都会发生。因为当鼠标没有被按下时,value没有定义。注意,上面的属性加冒号,就是通常的绑定方法。
与之区别的,是我们使用Binding来处理这种预期,以避免警告。例如下面的代码:
Binding on value {
}
Binding组件也能恢复预先直接绑定在属性上的值,从这个角度来说,这个组件就像是一个简化版的State。
下面的代码等效于上面的Binding:
State {
}
如果绑定的目标或属性更改,绑定值会立刻被推送到新目标上。同时查阅Qt QML的文档。
PropertyDocumentation
property : string
被更新的属性。
target : Object
被更新的目标。
value : any
要在目标对象和属性上设置的值,它能是一个常数(不常用),或者绑定的表达式。
when : bool
绑定是否被激活,它应该被设置成表达式,用以判断我们是否想激活绑定。
Binding {
}
当绑定变成未激活状态,任何使用通常方法绑定在属性上的值将被恢复。- QML类型说明-Binding
- QML类型说明-Accessible
- QML类型说明-Action
- QML类型说明-Address
- QML类型说明-Affector
- QML类型说明-Age
- QML类型说明-Altimeter
- QML类型说明-AltimeterReading
- QML类型说明-AmbientLightReading
- QML类型说明-AmbientLightSensor
- QML类型说明-AnchorAnimation
- QML类型说明-AnchorChanges
- QML类型说明-AngleDirection
- QML类型说明-ParallelAnimation
- QML类型说明-Animator
- QML类型说明-AnimatedImage
- QML类型说明-AnimatedSprite
- QML类型说明-ApplicationWindow
- QML类型说明-AudioEngine
- QML类型说明-AudioListener
- QML类型说明-AudioSample
- 使用hibernate实体全注解时遇到Unknown entity解决办法
- QML类型说明-Behavior
- QML类型说明-Binding
- QML类型说明-Blend
- QML类型说明-BluetoothDiscoveryMo…
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- 【OC学习-3】什么是面向对象?和面向过程对比才明白
- Android的事件传递机制[转]
- OpenCV基础篇之图片叠加
- Netty源码解读之线程
- iomanip的介绍