Aplicación QML con complemento C++ (cmake) que agrega un archivo de recursos

Aplicación QML con complemento C++ (cmake) que agrega un archivo de recursos

¿Cómo agregar un archivo qrc ​​al proyecto "Aplicación QML con complemento C++ (cmake)"? No puedo encontrar una instrucción de trabajo. Solo encontré una cosa, agrego esto a CMakeLists.txt:

qt5_add_resources(RESOURCES modules/ProjectName/resources.qrc)

Con esto, el archivo finalmente se muestra en el árbol de archivos en Qt, pero está claro que el archivo no está incluido en el ejecutable después de compilarlo, entonces, ¿qué hacer?

Respuesta1

qt5_add_resources(RESOURCES modules/ProjectName/resources.qrc)

Esa cosa convierte archivos qrc en archivos C++. Los nombres de los archivos C++ se almacenan en la variable RECURSOS.

Los ejecutables y bibliotecas se compilan a partir de archivos C++ mediante el usoagregar_ejecutableyagregar_bibliotecaen CMakeFiles.txt. En la plantilla de proyecto "Aplicación QML con complemento C++ (cmake)", la parte "Complemento C++" significa biblioteca. Entonces, en algún lugar de CMakeFiles.txt hay unagregar_biblioteca. Los archivos de recursos deben agregarse allí:

add_library(Myappbackend MODULE
    ${Myappbackend_SRCS}
    ${RESOURCES}
)

Alternativamente, el qrc se puede compilar directamente en una biblioteca separada mediante elqt5_add_resourcesmacro o no compilado en absoluto (por lo que noqt5_add_resourcesen absoluto) y ser cargado por la aplicación Qt en tiempo de ejecución (consulte la fuente de la aplicación principal ubuntu-terminal, por ejemplo).

Respuesta2

set(CMAKE_AUTORCC ON)
add_executable(${PROJECT_NAME} ${SRC_LIST} modules/ProjectName/resources.qrc)

información relacionada