Концепции — Визуальные координаты в 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/qt-6.2/qtquick-visualcanvas-coordinates.html