<QtPlugin> - Defining Plugins
Die Header-Datei <QtPlugin> enthält Makros zur Definition von Plugins. Mehr dazu...
| Header: | #include <QtPlugin> |
ist Teil der Plugin-Klassen.
Makros
| Q_DECLARE_INTERFACE(ClassName, Identifier) | |
| Q_IMPORT_PLUGIN(PluginName) | |
| Q_PLUGIN_METADATA(...) |
Siehe auch: So erstellen Sie Qt-Plugins.
Makro-Dokumentation
Q_DECLARE_INTERFACE(ClassName, Identifier)
Dieses Makro ordnet den angegebenen Namen „ Identifier “ (ein Zeichenfolgenliteral) der Schnittstellenklasse „ ClassName “ zu. Der Name „ Identifier “ muss eindeutig sein.
Dieses Makro wird normalerweise direkt nach der Klassendefinition für „ ClassName “ in einer Header-Datei verwendet.
Wenn Sie `Q_DECLARE_INTERFACE` mit Schnittstellenklassen verwenden möchten, die in einem Namespace deklariert sind, müssen Sie jedoch sicherstellen, dass `Q_DECLARE_INTERFACE` nicht innerhalb eines Namespaces steht. Beispiel:
namespace Foo
{
struct MyInterface { /*...*/ };
}
Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")Siehe auch „ Q_INTERFACES()“ und „So erstellen Sie Qt-Plugins“.
Q_IMPORT_PLUGIN(PluginName)
Dieses Makro importiert das Plugin mit dem Namen „ PluginName “, was dem Namen der Klasse entspricht, die die Metadaten für das Plugin mit „ Q_PLUGIN_METADATA()“ deklariert.
Wenn Sie dieses Makro im Quellcode Ihrer Anwendung auf Dateiebene des Stamm-Namespace einfügen, können Sie ein statisches Plugin nutzen.
Beispiel:
Q_IMPORT_PLUGIN(qjpeg)Statische Plugins müssen beim Erstellen Ihrer Anwendung ebenfalls vom Linker eingebunden werden. Weitere Informationen hierzu finden Sie unter „Statische Plugins “.
Siehe auch „Statische Plugins “ und „So erstellen Sie Qt-Plugins“.
Q_PLUGIN_METADATA(...)
Dieses Makro wird verwendet, um Metadaten zu deklarieren, die Teil eines Plugins sind, das dieses Objekt instanziiert.
Das Makro muss die IID der durch das Objekt implementierten Schnittstelle deklarieren und auf eine Datei verweisen, die die Metadaten für das Plugin enthält.
Dieses Makro sollte im Quellcode eines Qt-Plugins genau einmal vorkommen.
Beispiel:
class MyInstance : public QObject
{
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mymetadata.json")
};Beachten Sie, dass die Klasse, in der dieses Makro vorkommt, standardmäßig konstruierbar sein muss.
FILE ist optional und verweist auf eine JSON-Datei.
Die JSON-Datei muss sich in einem der vom Build-System angegebenen Include-Verzeichnisse befinden. moc bricht mit einer Fehlermeldung ab, wenn die angegebene Datei nicht gefunden werden kann.
Siehe auch „ Q_DECLARE_INTERFACE()“ und „So erstellen Sie Qt-Plugins“.
© 2026 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.