En esta página

Desplegando Plugins

Este tema explica cómo desplegar librerías de plugins para que Qt o tu aplicación las cargue en tiempo de ejecución. Si usas plugins estáticos, entonces el código del plugin ya es parte del ejecutable de tu aplicación y no se requieren pasos de despliegue separados.

El directorio de plugins

En Qt, cuando una aplicación se inicia, el directorio ejecutable de la aplicación es el directorio base donde Qt busca los plugins.

Por ejemplo, en Windows, si la aplicación está en C:\Program Files\MyApp y tiene un plugin de estilo, Qt busca en C:\Program Files\MyApp\styles.

Para saber dónde se encuentra el ejecutable de tu aplicación, consulta QCoreApplication::applicationDirPath().

Qt también busca en el directorio especificado por QLibraryInfo::path(QLibraryInfo::PluginsPath), que normalmente se encuentra en QTDIR/plugins; QTDIR es el directorio donde está instalado Qt. Si quieres que Qt busque en lugares adicionales puedes añadir tantas rutas como necesites con llamadas a QCoreApplication::addLibraryPath(). Si quieres establecer tu(s) propia(s) ruta(s), puedes usar QCoreApplication::setLibraryPaths().

Alternativamente, puede utilizar un archivo qt.conf para anular las rutas codificadas que se compilan en la biblioteca Qt. Para obtener más información, consulte Uso de qt.conf.

Otra posibilidad es establecer la variable de entorno QT_PLUGIN_PATH antes de ejecutar la aplicación; se pueden separar varias rutas con un separador de rutas del sistema. Cuando se establece, Qt busca plugins en las rutas especificadas en esta variable.

Nota: No exporte QT_PLUGIN_PATH como una variable de entorno de todo el sistema porque puede interferir con otras instalaciones de Qt.

Carga y verificación dinámica de plugins

Cuando se cargan plugins, la librería Qt hace algunas comprobaciones para determinar si el plugin puede ser cargado y usado. Esta comprobación le permite tener múltiples versiones y configuraciones de Qt instaladas una al lado de la otra.

Se aplican las siguientes reglas:

  • Los plugins enlazados con una librería Qt que tenga un número de versión menor mayor no serán cargados por una librería con un número de versión menor.


    Ejemplo: Qt 6.2.0 no cargará un plugin construido con Qt 6.3.0. Ejemplo: Qt 6.2.0 cargará un plugin construido con Qt 6.1.0. Ejemplo: Qt 6.2.0 cargará un plugin creado con Qt 6.2.1.

  • Los plugins enlazados con una librería Qt que tenga un número de versión mayor bajo no serán cargados por una librería con un número de versión mayor.


    Ejemplo: Qt 6.0.0 no cargará un plugin construido con Qt 5.15.0.

Cuando se construyen plugins para extender una aplicación, es importante asegurarse de que el plugin está configurado de la misma manera que la aplicación. Esto significa que si la aplicación fue construida en modo release, los plugins deberían ser construidos también en modo release. Excepto en sistemas operativos Unix, donde el sistema de plugins no cargará plugins construidos en un modo diferente al de la aplicación.

Depuración de plugins

Hay una serie de problemas que pueden impedir que los plugins correctamente escritos funcionen con las aplicaciones diseñadas para utilizarlos. Muchos de ellos están relacionados con diferencias en la forma en que los plugins y las aplicaciones han sido construidos, a menudo derivadas de sistemas y procesos de construcción separados.

Para obtener información de diagnóstico de Qt, sobre cada plugin que intenta cargar, utilice la variable de entorno QT_DEBUG_PLUGINS. Establezca esta variable a un valor distinto de cero en el entorno donde se lanza su aplicación.

La siguiente tabla describe las causas comunes de los problemas que experimentan los desarrolladores al crear plugins y sus posibles soluciones.

ProblemaCausaSolución
Los plugins fallan silenciosamente al cargarse incluso cuando son abiertos directamente por la aplicación. Qt Widgets Designer muestra las librerías de plugins en su diálogo Help|About Plugins, pero no aparecen plugins bajo cada una de ellas.La aplicación y sus plugins están construidos en modos diferentes.Construya el plugin en la misma configuración que el ejecutable.

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