Aplicativo QML com plugin C++ (cmake) adicionando arquivo de recursos

Aplicativo QML com plugin C++ (cmake) adicionando arquivo de recursos

Como adicionar o arquivo qrc ​​ao projeto "Aplicativo QML com plugin C++ (cmake)"? Não consigo encontrar uma instrução de trabalho. Encontrei apenas uma coisa, adicionei isto ao CMakeLists.txt:

qt5_add_resources(RESOURCES modules/ProjectName/resources.qrc)

com isso o arquivo é finalmente mostrado na árvore de arquivos do Qt, mas é claro que o arquivo não está incluído no executável após a compilação, então o que fazer?

Responder1

qt5_add_resources(RESOURCES modules/ProjectName/resources.qrc)

Essa coisa converte arquivos qrc em arquivos C++. Os nomes dos arquivos C++ são armazenados na variável RESOURCES.

Executáveis ​​e bibliotecas são compilados a partir de arquivos C++ usandoadd_executáveleadd_libraryem CMakeFiles.txt. No modelo de projeto "Aplicativo QML com plugin C++ (cmake)", a parte "plugin C++" significa biblioteca. Então, em algum lugar do CMakeFiles.txt existe umadd_library. Os arquivos de recursos devem ser adicionados lá:

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

Alternativamente, o qrc ​​pode ser compilado diretamente em uma biblioteca separada peloqt5_add_resourcesmacro ou não compilado (então nãoqt5_add_resourcesem tudo) e ser carregado pelo aplicativo Qt em tempo de execução (veja a fonte do aplicativo principal do ubuntu-terminal, por exemplo).

Responder2

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

informação relacionada