<QtPlugin> - Defining Plugins
El fichero de cabecera <QtPlugin> define macros para definir plugins. Más...
| Header: | #include <QtPlugin> |
forma parte de Plugin Classes.
Macros
| Q_DECLARE_INTERFACE(ClassName, Identifier) | |
| Q_IMPORT_PLUGIN(PluginName) | |
| Q_PLUGIN_METADATA(...) |
Vea también Cómo crear plugins Qt.
Documentación de Macros
Q_DECLARE_INTERFACE(ClassName, Identifier)
Esta macro asocia el Identifier dado (un literal de cadena) a la clase de interfaz llamada ClassName. El Identifier debe ser único.
Esta macro se usa normalmente justo después de la definición de clase para ClassName, en un fichero de cabecera.
Si desea usar Q_DECLARE_INTERFACE con clases de interfaz declaradas en un espacio de nombres, debe asegurarse de que Q_DECLARE_INTERFACE no está dentro de un espacio de nombres. Por ejemplo:
namespace Foo { struct MyInterface { /*...*/ }; } Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")
Ver también Q_INTERFACES() y Cómo Crear Plugins Qt.
Q_IMPORT_PLUGIN(PluginName)
Esta macro importa el plugin llamado PluginName, que se corresponde con el nombre de la clase que declara los metadatos para el plugin con Q_PLUGIN_METADATA().
La inserción de esta macro en el código fuente de su aplicación en el ámbito de archivo del espacio de nombres raíz le permitirá hacer uso de un plugin estático.
Ejemplo:
Q_IMPORT_PLUGIN(qjpeg)
Los plugins estáticos también deben ser incluidos por el enlazador cuando se construye tu aplicación. Ver Plugins estáticos para más información.
Vea también Plugins estáticos y Cómo crear plugins Qt.
Q_PLUGIN_METADATA(...)
Esta macro se utiliza para declarar metadatos que forman parte de un complemento que instancia este objeto.
La macro necesita declarar el IID de la interfaz implementada a través del objeto, y hacer referencia a un archivo que contenga los metadatos del complemento.
Debería haber exactamente una ocurrencia de esta macro en el código fuente de un plugin Qt.
Ejemplo:
class MyInstance : public QObject { Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mymetadata.json") };
Tenga en cuenta que la clase en la que aparece esta macro debe ser construible por defecto.
FILE es opcional y apunta a un archivo json.
El archivo json debe residir en uno de los directorios de inclusión especificados por el sistema de construcción. moc sale con un error cuando no puede encontrar el archivo especificado.
Véase también Q_DECLARE_INTERFACE() y Cómo crear 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.