Das QML-Typensystem
Die Typen, die bei der Definition einer Objekthierarchie in einem QML-Dokument verwendet werden können, können aus verschiedenen Quellen stammen. Sie können sein:
- nativ von der QML-Sprache bereitgestellt
- über C++ von QML-Modulen registriert
- als QML-Dokumente von QML-Modulen bereitgestellt
Darüber hinaus können Anwendungsentwickler ihre eigenen Typen bereitstellen, entweder durch direkte Registrierung von C++-Typen oder durch die Definition wiederverwendbarer Komponenten in QML-Dokumenten, die dann importiert werden können.
Unabhängig davon, woher die Typdefinitionen stammen, wird die Engine die Typsicherheit für Eigenschaften und Instanzen dieser Typen durchsetzen.
QML-Wertetypen
Die QML-Sprache bietet integrierte Unterstützung für verschiedene primitive Typen, darunter Ganzzahlen, Gleitkommazahlen mit doppelter Genauigkeit, Strings und boolesche Werte. Objekte können Eigenschaften dieser Typen haben, und Werte dieser Typen können als Argumente an Methoden von Objekten übergeben werden.
Weitere Informationen über Wertetypen finden Sie in der Dokumentation QML Value Types.
QML-Objekttypen
Ein QML-Objekttyp ist ein Typ, von dem ein QML-Objekt instanziiert werden kann. QML-Objekttypen sind von QtObject abgeleitet und werden von QML-Modulen bereitgestellt. Anwendungen können diese Module importieren, um die von ihnen bereitgestellten Objekttypen zu verwenden. Das Modul QtQuick
stellt die gebräuchlichsten Objekttypen bereit, die zur Erstellung von Benutzeroberflächen in QML benötigt werden.
Schließlich definiert jedes QML-Dokument implizit einen QML-Objekttyp, der in anderen QML-Dokumenten wiederverwendet werden kann. Ausführliche Informationen zu den Objekttypen finden Sie in der Dokumentation zu den Objekttypen im QML-Typensystem.
QML-Sequenztypen
Sequenztypen können verwendet werden, um Sequenzen von Werten oder Objekten zu speichern.
Ausführliche Informationen zu Sequenztypen finden Sie in der Dokumentation zu Sequenztypen im QML-Typsystem.
QML-Namensräume
QML-Namensräume können verwendet werden, um Aufzählungen von C++-Namensräumen freizulegen.
Ausführliche Informationen zu Namespaces finden Sie in der Dokumentation zu Namespaces im QML-Typsystem.
JavaScript-Typen
JavaScript-Objekte und -Arrays werden von der QML-Engine unterstützt. Jeder Standard-JavaScript-Typ kann unter Verwendung des generischen var -Typs erstellt und gespeichert werden.
Zum Beispiel sind die Standardtypen Date
und Array
verfügbar, wie unten dargestellt:
import QtQuick Item { property var theArray: [] property var theDate: new Date() Component.onCompleted: { for (var i = 0; i < 10; i++) theArray.push("Item " + i) console.log("There are", theArray.length, "items in the array") console.log("The time is", theDate.toUTCString()) } }
Siehe JavaScript-Ausdrücke in QML-Dokumenten für weitere Einzelheiten.
© 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.