如果我有一个属性宽度的矩形,有三个选项可以设置我混淆的值:
read-only property int widthReadOnly: 200
Rectangle{
width: 200 //first
width: widthReadOnly //second
Component.onCompleted: {width = 200} //third
}
你能告诉我什么时候使用它们吗? 谢谢。
答案 0 :(得分:1)
起初你的所有例子都是一样的。 第一和第二个检查创建了对值的绑定,但由于它们是int(第一个),或者只读属性(第二个),它们永远不会更改。因为永远不会有...... Changed()信号,它们也像你的第三个例子那样只是一个任务(如果指定的值发生变化,变化将不更改受让人)。 / p>
Bindings的使用是指绑定到某个可更改的值,也就是父项的宽度。因此,如果父宽度发生变化,它将传播到子项:
import QtQuick 2.0
import QtQuick.Controls 1.4
Item {
Rectangle {
id: papa
width: 100
height: 100
color: "red"
Rectangle {
id: child
anchors.centerIn: parent
width: parent.width / 2
height: parent.height / 2
color: "lightsteelblue"
}
}
Button {
id: button
onClicked: {
papa.width = 100 + (Math.random() * 100)
}
}
}
如您所见,如果更新了papa宽度,它还会更改子项的宽度。