概念 - Qt Quick 中的视觉坐标

项坐标

Qt Quick 中使用的默认视觉坐标系统是项坐标。这是一个笛卡尔坐标系,其中 (0,0) 位于项的右上角。x 轴向右增长,y 轴向下增长,因此项的右下角在坐标 (width, height)。

单个项的位置是相对于其父项的坐标系统指定的。这意味着,从非兄弟项中读取 x,y 值可能需要转换以将它们转换为相同的坐标系统。在这种情况下,场景坐标通常用作中间坐标系统。

场景坐标

场景坐标是指 (0,0) 对应当前渲染的场景窗口的右上角的坐标。场景坐标通常与窗口中根项的项坐标相同。

您可以使用感兴趣的项上提供的函数从项坐标转换为场景坐标或另一个项的坐标。有关转换为场景坐标的方法,请参阅 Item::mapFromItemItem::mapToItem

实例示例

以下 QML 代码创建了一个正方形排列,其中添加了点以标识点

Rectangle {
    width: 200
    height: 200
    color: "red"

    Rectangle {
        x: 100
        y: 100
        width: 100
        height: 100
        color: "blue"

        Rectangle {
            width: 50
            height: 50
            color: "green"
        }
    }
}

在此图像中,黑色点位于红色矩形项坐标的 (0,0) 位置。如果红色矩形是场景的根项,则黑色点也在场景坐标中的 (0,0) 位置。

蓝色矩形相对于红色矩形的右上角定位在白色点 (100,100)。

绿色矩形未指定 x,y,因此其位置默认为 (0,0)。因为它在父坐标系统(蓝色矩形)中位于 (0,0),它位于该矩形的左上角。这与红色矩形坐标中的 (100,100) 的白色点相同。

© 2024 The Qt Company Ltd。此处包含的文档贡献的版权属其所有者。此处提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 许可的。Qt 及其标志是全球范围内芬兰和/或其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其所有者的财产。