假设我有一个这样的组件:
Rectangle {
id: rec1
Rectangle {
id: rec
x:10;y:100; height:100;
color: 'red'
anchors {
left: parent.left
right: parent.right
}
Loader {
id:loader
width: parent.width
sourceComponent: comp
}
}
Component {
id: comp
Rectangle {
anchors {
left: parent.left
leftMargin: 1 // this line
right: parent.right
}
height:img.height
Image {
id: img
source: '/myimage.png'
width: parent.width
fillMode: Image.PreserveAspectFit
}
}
}
}
控制台报告:
QML 图像:检测到属性"宽度"的绑定循环
但是如果我将 comp leftMargin 更改为 leftMargin: 0
(不是 1),一切都很好
这是错误还是我缺少的某些功能?
在我看来,
你打错了字:
width:100; height:100;
...
anchors {
left: parent.left
right: parent.right
}
通过这样做,您可以:
- 显式设置矩形
width
(100
)。
将左侧显式 - 锚定到父项左侧(如果这只是一个锚定操作 - 它是 Ok),然后 - 将右侧锚定到父项的右侧(因此您隐式定义矩形的
width
)。
这是矛盾的。尝试解决它(例如,通过删除右锚)并重新运行应用程序。