检测到图像属性"width"的绑定循环



假设我有一个这样的组件:

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
}

通过这样做,您可以:

  1. 显式设置矩形width100 )。
  2. 将左侧显式
  3. 锚定到父项左侧(如果这只是一个锚定操作 - 它是 Ok),然后 - 将右侧锚定到父项的右侧(因此您隐式定义矩形的width)。

这是矛盾的。尝试解决它(例如,通过删除右锚)并重新运行应用程序。

相关内容

  • 没有找到相关文章