Konzepte - Visuelle Koordinaten in Qt Quick

Gegenstandskoordinaten

Das Standard-System der visuellen Koordinaten, das in Qt Quick verwendet wird, sind die Objektkoordinaten. Dabei handelt es sich um ein kartesisches Koordinatensystem mit (0,0) in der linken oberen Ecke des Objekts. Die x-Achse wächst nach rechts und die y-Achse wächst nach unten, so dass die untere rechte Ecke des Eintrags bei den Koordinaten (Breite, Höhe) liegt.

Die Position eines einzelnen Elements wird in Bezug auf das Koordinatensystem des übergeordneten Elements angegeben. Das bedeutet, dass das Lesen von x,y-Werten aus nicht-verwandten Elementen eine Konvertierung in dasselbe Koordinatensystem erfordern kann. In diesem Fall werden häufig Szenenkoordinaten als Zwischenkoordinatensystem verwendet.

Szenenkoordinaten

Szenenkoordinaten sind die Koordinaten, bei denen (0,0) der oberen linken Ecke des Fensters entspricht, in dem die Szene gerade gerendert wird. Szenenkoordinaten sind in der Regel identisch mit den Elementkoordinaten des Stammelements im Fenster.

Sie können von Element- in Szenenkoordinaten konvertieren, indem Sie die Funktionen für das Element verwenden, an dessen Koordinatensystem Sie interessiert sind. Siehe Item::mapFromItem und Item::mapToItem für die Konvertierung in Szenenkoordinaten oder in die Koordinaten eines anderen Elements.

Praktisches Beispiel

Der folgende QML-Code erstellt eine Anordnung von Quadraten, die mit Punkten zur Identifizierung von Punkten versehen sind:

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"
        }
    }
}

In diesem Bild befindet sich der schwarze Punkt bei (0,0) innerhalb der Objektkoordinaten des roten Rechtecks. Wenn das rote Rechteck das Hauptelement der Szene wäre, würde der schwarze Punkt auch bei (0,0) in den Koordinaten der Szene positioniert werden.

Das blaue Rechteck befindet sich am weißen Punkt (100,100), relativ zur oberen linken Ecke des roten Rechtecks.

Für das grüne Rechteck ist kein x,y-Wert angegeben, so dass seine Position standardmäßig (0,0) beträgt. Da es sich in den Koordinaten seines Elternteils, des blauen Rechtecks, bei (0,0) befindet, wird es an der oberen linken Ecke dieses Rechtecks positioniert. Dies ist derselbe Punkt wie der weiße Punkt bei (100,100) in den Koordinaten des roten Rechtecks.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.