QML:当 anchors.margin 和侧边距(如 anchors.leftMargin 都设置时会发生什么?

QML: What happens when anchors.margin and a side margin, like anchors.leftMargin are both set?

我想使用 anchors.margins 为所有边指定锚点,但将边锚点设置为不同的值,例如 anchors.leftMargin

例如:

Rectangle {
    id: rect
    width: 100; height: 100
    color: "black"

    Rectangle {
        anchors {
            fill: parent
            leftMargin: 0
            margins: 30
        }
        color: "lime"
    }
}

其中显示:

它似乎可以工作,但这是一个功能还是等待发生的错误? margins 不是设置所有边锚边距的快捷方式吗?它的工作原理只是因为绑定的评估顺序?如果有人修改代码可能 anchors.margins 覆盖 leftMargin 属性?

将边锚和 anchors.margins 一起设置是安全的。

anchors.marginsanchors.leftMarginanchors.topMarginanchors.rightMarginanchors.bottomMargin 都是单独的属性。所有边锚的默认值为anchors.margins;将 undefined 分配给侧锚会将其恢复为 anchors.margins 值。

Anchors.margins 为更具体的边距属性提供默认值。所以,你所做的是安全和支持的。