当孩子的可见性发生变化时,QML会重新计算布局

时间:2016-06-23 10:20:26

标签: qt layout qml qtquick2

我正在使用带有2个孩子的RowLayout。如果我隐藏其中一个,我希望另一个孩子填满整个区域。当取消隐藏时,该区域应该均匀分开。

我遇到的问题是启动时隐藏了1个孩子,并且运行时可见性发生了变化。该区域只有1个孩子(并且间距显示小条)。虽然我预计两个孩子都会被看到。

示例:

RowLayout {
    anchors.fill: parent

    Rectangle {
        id: rect1
        Layout.fillWidth: true
        Layout.fillHeight: true
        color: "red"

        MouseArea
        {
            anchors.fill: parent
            onClicked:
            {
                rect2.visible = !rect2.visible
            }
        }
    }

    Rectangle {
        id: rect2
        Layout.fillWidth: true
        Layout.fillHeight: true
        color: "blue"
        visible: false
    }
}

如果我从visible: false移除rect2,则可以预期。只有我想在启动时隐藏rect2。

rect2.visible = false放在Component.onCompleted中只会增加额外的代码,而这些代码不需要。

针对此问题的任何解决方案?

0 个答案:

没有答案