有一种具有Rectangle
类型属性的可重用元素:
property Item middleRegion: Rectangle {
color: "grey";
border.width: 1;
height: line.height;
parent: line
}
然后,如果用户定义了自己的middleRegion
,则会调用onMiddleRegionChanged()
:
onMiddleRegionChanged: {
middleRegion.parent = line
middleRegion.height = line.height
}
但是,尽管line.height
发生了变化,但middleRegion.height
之后并未发生变化。为什么绑定在此代码中不起作用?
重要的是,如果用户没有定义middleRegion
,那么一切进展顺利。
答案 0 :(得分:0)
我自己找到了答案。
根据Qt documentation的示例,使用Qt.binding()
import QtQuick 2.0
Rectangle {
width: 100
height: width * 2
focus: true
Keys.onSpacePressed: {
height = Qt.binding(function() { return width * 3 })
}
}