<QtPlugin> - Defining Plugins

Le fichier d'en-tête <QtPlugin> définit des macros permettant de créer des plugins. En savoir plus...

Header: #include <QtPlugin>

Macros

Q_DECLARE_INTERFACE(ClassName, Identifier)
Q_IMPORT_PLUGIN(PluginName)
Q_PLUGIN_METADATA(...)

Description détaillée

Voir aussi Comment créer des plugins Qt.

Documentation sur les macros

Q_DECLARE_INTERFACE(ClassName, Identifier)

Cette macro associe l'Identifier donnée (une chaîne littérale) à la classe d'interface nommée ClassName. L'Identifier doit être unique.

Cette macro est généralement utilisée juste après la définition de la classe ClassName, dans un fichier d'en-tête.

Si vous souhaitez utiliser Q_DECLARE_INTERFACE avec des classes d’interface déclarées dans un espace de noms, vous devez toutefois vous assurer que la macro Q_DECLARE_INTERFACE ne se trouve pas elle-même à l’intérieur d’un espace de noms. Par exemple :

namespace Foo
{
    struct MyInterface { /*...*/ };
}

Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")

Voir également Q_INTERFACES() et Comment créer des plugins Qt.

Q_IMPORT_PLUGIN(PluginName)

Cette macro importe le plugin nommé « PluginName », dont le nom correspond à celui de la classe qui déclare les métadonnées du plugin via la méthode Q_PLUGIN_METADATA().

L'insertion de cette macro dans le code source de votre application, au niveau de l'espace de noms racine, vous permettra d'utiliser un plugin statique.

Exemple :

Q_IMPORT_PLUGIN(qjpeg)

Les plugins statiques doivent également être inclus par l'éditeur de liens lors de la compilation de votre application. Consultez la section Plugins statiques pour plus d'informations à ce sujet.

Voir également Plugins statiques et Comment créer des plugins Qt.

Q_PLUGIN_METADATA(...)

Cette macro sert à déclarer les métadonnées faisant partie d'un plugin qui instancie cet objet.

La macro doit déclarer l'IID de l'interface implémentée par l'objet et faire référence à un fichier contenant les métadonnées du plugin.

Cette macro ne doit apparaître qu'une seule fois dans le code source d'un plugin Qt.

Exemple :

class MyInstance : public QObject
{
    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mymetadata.json")
};

Notez que la classe dans laquelle cette macro apparaît doit pouvoir être construite par défaut.

FILE est facultatif et pointe vers un fichier JSON.

Le fichier JSON doit se trouver dans l'un des répertoires d'inclusion spécifiés par le système de compilation. moc se termine par une erreur s'il ne parvient pas à trouver le fichier spécifié.

Voir également Q_DECLARE_INTERFACE() et Comment créer des plugins Qt.

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