QQmlExtensionPlugin Class

Die Klasse QQmlExtensionPlugin bietet eine abstrakte Basis für benutzerdefinierte QML-Erweiterungs-Plugins mit benutzerdefinierten Typregistrierungsfunktionen. Mehr...

Kopfzeile: #include <QQmlExtensionPlugin>
CMake: find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmake: QT += qml
Vererbungen: QObject

Öffentliche Funktionen

(since 6.0) virtual void unregisterTypes()

Reimplementierte öffentliche Funktionen

virtual void initializeEngine(QQmlEngine *engine, const char *uri) override
virtual void registerTypes(const char *uri) override = 0

Detaillierte Beschreibung

Hinweis: Wenn Sie ein Plugin manuell schreiben müssen (was selten ist), sollten Sie immer QQmlEngineExtensionPlugin verwenden. QQmlExtensionPlugin stellt nur die Funktionen registerTypes() und unregisterTypes() zusätzlich zur Verfügung. Sie sollten diese nicht verwenden, sondern Ihre Typen mit QML_ELEMENT und Freunden deklarieren und das Build-System die Registrierung übernehmen lassen.

Dokumentation der Mitgliedsfunktionen

[override virtual] void QQmlExtensionPlugin::initializeEngine(QQmlEngine *engine, const char *uri)

Initialisiert die Erweiterung von der uri unter Verwendung der engine. Hier könnte ein Anwendungsplugin beispielsweise einige Daten oder Objekte für QML als Kontexteigenschaften im Wurzelkontext der Engine freigeben.

[override pure virtual] void QQmlExtensionPlugin::registerTypes(const char *uri)

Registriert die QML-Typen in der angegebenen uri. Unterklassen sollten dies implementieren, um qmlRegisterType() für alle Typen aufzurufen, die vom Erweiterungs-Plugin bereitgestellt werden.

uri ist ein Bezeichner für das Plugin, der von der QML-Engine auf der Grundlage des Namens und Pfads der Plugin-Bibliothek der Erweiterung generiert wird.

[virtual, since 6.0] void QQmlExtensionPlugin::unregisterTypes()

Überschreiben Sie diese Methode, um manuell in registerTypes registrierte Typen wieder zu entfernen.

Diese Funktion wurde in Qt 6.0 eingeführt.

© 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.