Qml 如何使用;“布局.路线”;而不是",;anchors.right:someItemID.right“;

Qml 如何使用;“布局.路线”;而不是",;anchors.right:someItemID.right“;,qml,Qml,我的QML项目中包含以下语句: Rectangle { // ... anchors.right: someItemID.right // ... } 我收到关于我的矩形项目的此警告: QML矩形:在由布局管理的项上检测到锚定。这是未定义的行为;改用Layout.alignment 如何使用Layout.alignment解决上述警告?如何将另一个项目ID传递给布局.对齐?是否可能?布局管理其所有子项的位置和大小。不允许在子项内使用锚定,因为它可能会覆盖这些规则。您只能

我的QML项目中包含以下语句:

Rectangle {
    // ...
    anchors.right: someItemID.right
    // ...
}
我收到关于我的
矩形
项目的此警告:

QML矩形:在由布局管理的项上检测到锚定。这是未定义的行为;改用Layout.alignment


如何使用
Layout.alignment
解决上述警告?如何将另一个项目ID传递给布局.对齐?是否可能?

布局管理其所有子项的位置和大小。不允许在子项内使用锚定,因为它可能会覆盖这些规则。您只能影响附加到其子对象的对象中布局提供的属性,警告消息中会提示这些属性。控制项目在布局为其创建的单元格内的对齐方式。因此,可以将项目与其相邻单元格的边缘对齐,但不能通过ID直接定位到其项目


如果需要更精确的控制,应使用“位置”和/或“锚定”属性将项目定位在布局外部。

布局和锚定项目是两种不同的机制,请参阅和以获取更多信息。@JanWin看起来不错。谢谢。@JanWin如果它们是不同的机制,为什么警告告诉我们使用Layout.alignment而不是锚点?顺便说一句,当我使用RowLayout管理水平布局和锚定管理垂直布局时,会出现警告。这应该是可能的,并且在许多Qt版本中都是如此。如果在布局项目中使用锚定,则会出现警告。可以布局项目,然后对这些项目内的项目使用定位。