QML-Aufzählungen
Die in QML verwendeten Aufzählungen können entweder in QML oder in C++ definiert werden.
Für Informationen zur Definition von Aufzählungen in QML siehe Aufzählungsattribute.
Wenn sie in C++ definiert sind, müssen Enumerationen, die in QML verwendet werden, mit den Makros Q_ENUM oder Q_ENUM_NS markiert werden und Teil eines Typs sein, der über die Makros QML_NAMED_ELEMENT oder QML_ELEMENT in QML verwendet wird. Für weitere Details siehe Aufzählungstypen.
Nur benannte QML-Typen können Aufzählungen enthalten, die in QML verwendet werden können. Jede Aufzählung muss von einem benannten Typ umgeben sein. QML Namespaces sind ebenfalls QML-Typen und können Aufzählungen enthalten.
Folglich kann ein Aufzählungswert als <Type>.<Value>
bezeichnet werden. Zum Beispiel hat der Typ Text einen Aufzählungswert AlignRight
:
Text { horizontalAlignment: Text.AlignRight }
Aufzählungswerte sind Eigenschaften der Typreferenz, die durch den Typnamen erzeugt werden. Sie können sie auch mit der eckigen Klammer-Syntax von JavaScript abrufen, was jedoch fehleranfällig ist und nicht empfohlen wird:
// Avoid this if possible Text { horizontalAlignment: Text["AlignRight"] }
Verwendung von Aufzählungen in QML
Aufzählungen sind in QML keine eigenen Typen, sondern Eigenschaften der sie umgebenden Typen. Ein Aufzählungswert wird als der zugrunde liegende Typ der Aufzählung dargestellt. Für die meisten Aufzählungen ist es sicher, den JavaScript-Typ Number oder den QML-Typ double zu verwenden, um sie zu speichern. Dies funktioniert jedoch nicht immer für 64-Bit-Ganzzahlen, da ihr Bereich den sicheren Ganzzahlbereich von 64-Bit-Doubles überschreitet. Daher können Aufzählungen mit Werten außerhalb des sicheren Ganzzahlbereichs (-(2^53 - 1) bis 2^53 - 1, einschließlich) nicht sicher in QML verwendet werden. Für Aufzählungen mit Werten, die in den numerischen Bereich einer 32-Bit-Ganzzahl mit Vorzeichen passen, können Sie den QML-Typ int sicher als Speicher verwenden.
Ein Beispiel:
import QtQuick Item { // refer to Text.AlignRight using an int type property int enumValue: textItem.horizontalAlignment signal valueEmitted(int someValue) Text { id: textItem horizontalAlignment: Text.AlignRight } // emit valueEmitted() signal, which expects an int, with Text.AlignRight Component.onCompleted: valueEmitted(Text.AlignRight) }
Siehe auch QML-Wertetypen, Aufzählungsattribute und Aufzählungstypen.
© 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.