文章目录
一、开篇
在QML中,属性绑定是QML的核心特性,该特性允许我们指定不同对象属性之间的关系。当属性的依赖值发生变化时,该属性将根据指定的关系自动更新。
在QML应用程序运行过程中,QML引擎会自动监视属性的依赖项(即绑定表达式中的变量)。当检测到属性发生更改时,QML引擎会重新计算绑定表达式并将新结果应用到属性中,从而实现对象对其他对象之间的属性绑定。
可见,属性绑定关系存在于多个QML对象类型之间,这是QML的核心特性之一。
在QML中,属性绑定有三种方法实现,本文将描述这三种方法和在实际进行属性绑定时需要注意的事情。
二、属性绑定的三种方法
(2-1)使用冒号(:)进行属性绑定
如下代码:
Text {
id: text1
x: 205
y: 176
width: 230
height: 40
//将slider的value属性与text1的text进行绑定。当slider的value的值改变时将会改变text1的显示文本。
text: qsTr("%1".arg(slider.value))
font.pixelSize: 33
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
『注意』:QML的属性绑定是单向的。的value的值改变时将会改变text1的显示文本;但反过来则不会,即text1的显示文本改变时,slider的
value
属性不会发生改变。
(2-2)使用Qt.binding()函数进行属性绑定
在QML中,Qt.binding()
函数有两种用法:
第一种方法是:在JavaScript代码中命令式地应用属性绑定,如下代码:
Button {
id: button
x: 270
y: 253
text: qsTr("点击我")
onClicked:
{
text1.text = Qt.binding(function()