Подключение ресурсов в QTC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Подключение ресурсов в QT

Сообщение Anonymous »

У меня есть проект с подмодулем. Структура проекта следующая:
  • проект

    подмодуль

    значки

    icon.svg
< li>источники
  • папка\папка\папка\example_file.cpp
[*]CMakeLists.txt
[*]resources.qrc


[*]CMakeLists.txt
[*]main .cpp



Основной файл CMakeLists.txt:

Код: Выделить всё

add_executable(${PROJECT_NAME} main.cpp)
set_target_properties(${PROJECT_NAME} PROPERTIES AUTOMOC TRUE)

find_package(Qt6 COMPONENTS Core Widgets REQUIRED)
target_link_libraries(${PROJECT_NAME} Qt6::Core Qt6::Widgets)

add_subdirectory(submodule)
target_link_libraries(${PROJECT_NAME} submodule)

Код: Выделить всё

CMakeLists.txt
подмодуля:

Код: Выделить всё

add_library(submodule
# *.h & *.cpp files
)

target_include_directories(
submodule PUBLIC ${PROJECT_SOURCE_DIR}
)

set_target_properties(${PROJECT_NAME} PROPERTIES AUTOMOC TRUE)

find_package(Qt6 COMPONENTS Core Widgets REQUIRED)
target_link_libraries(${PROJECT_NAME} Qt6::Core Qt6::Widgets)

qt_add_resources(submodule_RESOURCES resources.qrc)
target_sources(${PROJECT_NAME} PRIVATE ${submodule_RESOURCES})
Прикрепляю файл resources.qrc:

Код: Выделить всё


icons/icon.svg



Далее я пытаюсь использовать ресурс в произвольном cpp-файле подмодуля, например так: QIcon icon(":icons/icon.svg"); . Но я получаю сообщение об ошибке: qt.svg: Невозможно открыть файл «:icons/icon.svg», потому что: нет такого файла или каталога. Где я ошибаюсь?
upd.
Более того, если я ошибаюсь:

Код: Выделить всё

Q_INIT_RESOURCE(resources);
qDebug() . 

Подробнее здесь: [url]https://stackoverflow.com/questions/79375563/connecting-resources-in-qt[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»