概念 - Qt Quick中的视觉坐标¶
Qt Quick 中视觉坐标概念的描述
项目坐标¶
Qt Quick 中使用的默认视觉坐标系统是项目坐标。这是一个笛卡尔坐标系,项目的左上角为 (0,0)。x 轴向右增长,y 轴向下增长,因此项目的右下角坐标为 (width, height)。
单个项目的位置是根据其父坐标系统指定的。这意味着从非兄弟项目读取x,y值可能需要转换,以将它们转换到相同的坐标系统中。当这种情况发生时,场景坐标通常被用作中间坐标系统。
场景坐标¶
场景坐标是指(0,0)对应于当前渲染场景的窗口左上角的坐标。场景坐标通常与窗口中根项目的项目坐标相同。
您可以使用感兴趣的坐标系上的函数将项目转换为场景坐标。请参阅mapFromItem
和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)的白点是同一个点。