Dans qt 4.5, est-il possible d'avoir des ressources dans un plugin lié statiquement?
Question
J'ai un module de plug-in QT personnalisé avec des ressources incorporées. Je souhaite lier statiquement ce plugin à une application:
LIBS += -lstatic_plugin_with_resources
Dans l'application, j'utilise la macro Q_IMPORT_PLUGIN ()
, qui permet à l'application d'utiliser le plug-in. Cependant, le plugin ne peut pas accéder à ses ressources incorporées.
L'utilisation du plug-in en tant que bibliothèque partagée fonctionne.
La solution
C'est possible. Dans l'application, vous devez initialiser explicitement les ressources contenues dans le plug-in statique.
Ceci est accompli en appelant le Q_INIT_RESOURCE (nom_base_ressource)
, où nom_base_ressources
est le nom de base du fichier .qrc qui spécifie les ressources. . Cela devrait probablement être appelé dans main () ou au démarrage de l'application. Vous pouvez éventuellement appeler Q_CLEANUP_RESOURCE ()
si le plug-in n'est plus utilisé.
Voir la dernière section de la documentation doc de QT 4.5. Consultez également la documentation de Q_INIT_RESOURCE
.
Cela a fonctionné pour moi sur la version Linux de QT 4.5.