Концепции - Визуальные координаты в Qt Quick
Координаты элементов
По умолчанию в Qt Quick используется система визуальных координат, основанная на координатах элементов. Это декартова система координат, где (0,0) находится в верхнем левом углу элемента. Ось X растёт вправо, а ось Y — вниз, так что нижний правый угол элемента имеет координаты (ширина, высота).
Положение отдельного элемента задаётся в системе координат его родительского элемента. Это означает, что для считывания значений x,y из элементов, не являющихся дочерними элементами, может потребоваться преобразование для перевода их в одну систему координат. Координаты сцены часто используются в качестве промежуточной системы координат в таких случаях.
Координаты сцены
Координаты сцены — это координаты, где (0,0) соответствует верхнему левому углу окна, в котором в настоящее время отрисовывается сцена. Координаты сцены обычно совпадают с координатами элемента корневого элемента в окне.
Вы можете преобразовать координаты от элемента к координатам сцены, используя функции элемента, чьи координаты вас интересуют. См. Item::mapFromItem и Item::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) в координатах красного прямоугольника.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qtquick-visualcanvas-coordinates.html