In qt 4.5, è possibile avere risorse in un plugin collegato staticamente?
Domanda
Ho un modulo plug-in QT personalizzato che ha risorse incorporate. Voglio collegare staticamente questo plugin con un'applicazione:
LIBS += -lstatic_plugin_with_resources
Nell'applicazione sto usando la macro Q_IMPORT_PLUGIN ()
, che consente all'applicazione di usare il plugin; tuttavia il plugin non può accedere alle sue risorse incorporate.
L'uso del plugin come libreria condivisa funziona.
Soluzione
È possibile. Nell'applicazione è necessario inizializzare esplicitamente le risorse contenute nel plug-in statico.
Ciò si ottiene chiamando il Q_INIT_RESOURCE(resource_base_name)
, dove resource_base_name
è il nome di base del file .qrc che specifica le risorse . Questo dovrebbe probabilmente essere chiamato in main () o all'avvio dell'applicazione. Se lo si desidera, è possibile chiamare Q_CLEANUP_RESOURCE()
se il plug-in non viene più utilizzato.
Vedi l'ultima sezione del QT 4.5 documento delle risorse . Vedi anche la documentazione per Q_INIT_RESOURCE
.
Questo ha funzionato per me sulla versione Linux di QT 4.5.