Qml绑定特性

在函数体内触发属性更新。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import QtQuick 2.0

Rectangle {
property int i: 0
width: 640
height: 480

Text {
text: changed()
}

Timer {
interval: 1000; running: true; repeat: true
onTriggered: i++
}

function changed() {
return i
}
}
  • 运行后出现的结果是text的值会不断+1;
  • 猜测情况下text: changed()应该为函数的返回值0,由于changed函数内存在外部变量就不一定是0了;

分析

  • qml绑定特性是绑定外部变量,外部变量变化触发信号更新,而信号的更新则会刷新text的值;
  • 使用qml的”:”右值为绑定表达式里面的外部变量。