Spec-Zone.ru › Qt 5.14

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API