C++-Erweiterungspunkte zur Verfügung gestellt von Qt Quick
Alle QML-Anwendungen können mit C++ erweitert werden, um zusätzliche, in C++-Code implementierte Funktionen zu nutzen oder um ein C++-basiertes QML-Plugin bereitzustellen. Dieses Thema der Erweiterung von QML mit C++ wird in der Dokumentation Writing QML Extensions with C++ behandelt.
Darüber hinaus bietet das Modul Qt Quick mehrere Erweiterungs- und Integrationspunkte für C++-Entwickler, die speziell für dieses Modul gelten. Insbesondere ermöglicht es C++-Entwicklern, benutzerdefinierte, von QQuickItem abgeleitete Typen zu erstellen und zu registrieren, die von Qt Quick gerendert werden können. Es bietet auch mehrere szenengraphbezogene Klassen, die es Entwicklern ermöglichen, ihre eigenen Rendering-Primitive zu definieren.
Benutzerdefinierte, von QQuickItem abgeleitete Typen
Während das Modul Qt Quick bereits eine reichhaltige Bibliothek visueller Elementtypen für die Verwendung in einer QML-Anwendung bereitstellt, möchten einige Entwickler vielleicht ihre eigenen, von Elementen abgeleiteten Typen in C++ definieren und sie dem QML-Typsystem zur Verfügung stellen. Der einfachste Weg, dies zu tun, ist die Unterklasse QQuickItem, die der Basistyp für alle visuellen Typen im Modul Qt Quick ist. Weitere Einzelheiten finden Sie in der Dokumentation QQuickItem.
Szenegraph-bezogene Klassen
Qt Quick 2 verwendet für das Rendering einen dedizierten Szenegraph, der auf Grafik-APIs wie OpenGL ES, OpenGL, Vulkan, Metal oder Direct 3D basiert. Die Verwendung eines Szenegraphen für Grafiken anstelle der traditionellen imperativen Mal-Systeme (QPainter und ähnliche) bedeutet, dass die zu rendernde Szene zwischen den Frames beibehalten werden kann und der komplette Satz der zu rendernden Primitive bekannt ist, bevor das Rendern beginnt. Dies ermöglicht eine Reihe von Optimierungen, wie z. B. das Stapeln der OpenGL-Zeichenaufrufe, um Zustandsänderungen zu minimieren, oder das Verwerfen von verdeckten Primitiven. Die Qt Quick C++ API bietet verschiedene Klassen, mit denen benutzerdefinierte Knoten in C++ erstellt werden können. Siehe die Qt Quick Scene Graph Dokumentation für weitere Details.
Pixmap- und Threaded Image-Unterstützung
Während die QML-Engine es QML-Anwendungen ermöglicht, Bilder aus dem Dateisystem oder aus Netzwerkressourcen zu laden, benötigen einige Anwendungen die zusätzliche Option, Bilder aus C++-basierten Prozessen zu laden. Dies kann durch die Klasse QQuickImageProvider implementiert werden, die Unterstützung für das Laden von Pixmaps und Threaded Image Requests für QML-Anwendungen bietet. Jede QML-Anwendung, die ein Bild über das spezielle URL-Schema "image:" anfordert, wird zum Laden des Bildes an einen geeigneten Bildanbieter weitergeleitet.
Weitere Informationen finden Sie in der Dokumentation QQuickImageProvider.
© 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.