En qt 4.5, ¿es posible tener recursos en un complemento estáticamente vinculado?
Pregunta
Tengo un módulo de complemento QT personalizado que tiene recursos incrustados. Quiero vincular estáticamente este complemento con una aplicación:
LIBS += -lstatic_plugin_with_resources
En la aplicación, estoy usando la macro Q_IMPORT_PLUGIN ()
, que permite que la aplicación use el complemento; sin embargo, el complemento no puede acceder a sus recursos incrustados.
El uso del complemento como biblioteca compartida no funciona.
Solución
Es posible. En la aplicación, debe inicializar explícitamente los recursos contenidos en el complemento estático.
Esto se logra llamando a Q_INIT_RESOURCE(resource_base_name)
, donde resource_base_name
es el nombre base del archivo .qrc que especifica los recursos . Probablemente debería llamarse en main () o al iniciar la aplicación. Opcionalmente, puede llamar a Q_CLEANUP_RESOURCE()
si ya no se usa el complemento.
Consulte la última sección del QT 4.5 documento de recursos . También vea la documentación para Q_INIT_RESOURCE
.
Esto me funcionó en la versión de Linux de QT 4.5.