Déployer des plugins
Cette rubrique explique comment déployer des bibliothèques de plugins pour Qt ou votre application afin qu'elles soient chargées au moment de l'exécution. Si vous utilisez des plugins statiques, le code du plugin fait déjà partie de l'exécutable de votre application et aucune étape de déploiement séparée n'est nécessaire.
Le répertoire des plugins
Dans Qt, lorsqu'une application démarre, le répertoire exécutable de l'application est le répertoire de base dans lequel Qt recherche les plugins.
Par exemple, sous Windows, si l'application se trouve dans C:\Program Files\MyApp et qu'elle possède un plugin de style, Qt cherche dans C:\Program Files\MyApp\styles.
Pour savoir où se trouve l'exécutable de votre application, consultez QCoreApplication::applicationDirPath().
Qt regarde également dans le répertoire spécifié par QLibraryInfo::path(QLibraryInfo::PluginsPath), qui est généralement situé dans QTDIR/plugins; QTDIR est le répertoire dans lequel Qt est installé. Si vous voulez que Qt XML cherche dans d'autres endroits, vous pouvez ajouter autant de chemins que nécessaire en appelant QCoreApplication::addLibraryPath(). Si vous voulez définir vos propres chemins, vous pouvez utiliser QCoreApplication::setLibraryPaths().
Vous pouvez également utiliser un fichier qt.conf pour remplacer les chemins codés en dur qui sont compilés dans la bibliothèque Qt. Pour plus d'informations, voir Utilisation de qt.conf.
Une autre possibilité consiste à définir la variable d'environnement QT_PLUGIN_PATH avant d'exécuter l'application ; plusieurs chemins peuvent être séparés par un séparateur de chemin système. Lorsque cette variable est définie, Qt recherche des plugins dans les chemins spécifiés dans cette variable.
Remarque : n'exportez pas QT_PLUGIN_PATH en tant que variable d'environnement pour l'ensemble du système, car cela peut interférer avec d'autres installations de Qt.
Chargement et vérification des plugins de manière dynamique
Lors du chargement des plugins, la bibliothèque Qt effectue un certain nombre de vérifications pour déterminer si le plugin peut être chargé et utilisé. Ce contrôle permet d'installer plusieurs versions et configurations de Qt côte à côte.
Les règles suivantes s'appliquent :
- Les plugins liés à une bibliothèque Qt dont le numéro de version mineure est supérieur ne seront pas chargés par une bibliothèque dont le numéro de version mineure est inférieur.
Exemple : Qt 6.2.0 ne chargera pas un plugin construit avec Qt 6.3.0. Exemple : Qt 6.2.0 chargera un plugin construit avec Qt 6.1.0. Exemple : Qt 6.2.0 chargera un plugin construit avec Qt 6.1.0 : Qt 6.2.0 chargera un plugin construit avec Qt 6.2.1. - Les plugins liés à une bibliothèque Qt dont le numéro de version majeure est inférieur ne seront pas chargés par une bibliothèque dont le numéro de version majeure est supérieur.
Exemple : Qt 6.0.0 ne chargera pas un plugin construit avec Qt 5.15.0.
Lorsque l'on crée des plugins pour étendre une application, il est important de s'assurer que le plugin est configuré de la même manière que l'application. Cela signifie que si l'application a été construite en mode release, les plugins doivent également être construits en mode release. Sauf pour les systèmes d'exploitation Unix, où le système de plugins ne chargera pas les plugins construits dans un mode différent de celui de l'application.
Débogage des plugins
Un certain nombre de problèmes peuvent empêcher des plugins correctement écrits de fonctionner avec les applications qui sont conçues pour les utiliser. Beaucoup d'entre eux sont liés à des différences dans la façon dont les plugins et les applications ont été construits, souvent à partir de systèmes et de processus de construction distincts.
Pour obtenir des informations de diagnostic de Qt XML sur chaque plugin qu'il tente de charger, utilisez la variable d'environnement QT_DEBUG_PLUGINS. Définissez cette variable à une valeur non nulle dans l'environnement où votre application est lancée.
Le tableau suivant décrit les causes courantes des problèmes rencontrés par les développeurs lors de la création de plugins et les solutions possibles.
| Problème | Cause | Solution |
|---|---|---|
| Les plugins ne se chargent pas, même lorsqu'ils sont ouverts directement par l'application. Qt Widgets Designer affiche les bibliothèques de plugins dans la boîte de dialogue Help|About Plugins, mais aucun plugin n'est répertorié sous chacune d'entre elles. | L'application et ses plugins sont construits dans des modes différents. | Construisez le plugin dans la même configuration que l'exécutable. |
© 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.