使用cmake构建的Qt资源(windows)不显示

问题描述 投票:0回答:1

我有一个要移到Cmake的Visual Studio Qt解决方案。除了我在* .qrc文件中的所有图标(.png)都没有显示以外,所有内容都可以正常编译和正常工作。我的CMakeLists.txt是Qt项目的标准设置:

...

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

set(SOURCE_FILES ...)
set(HEADER_FILES ...)
set(UI_FILES ...)
set(RESOURCE_FILES resources/res.qrc)
add_executable(project WIN32 ${SOURCE_FILES} ${HEADER_FILES} ${UI_FILES} ${RESOURCE_FILES})

find_package(Qt5 REQUIRED COMPONENTS ...)
target_link_libraries(project PRIVATE Qt5::Core etc...)

我认为所有图标实际上都嵌入了.exe,因为:1.如果我从qrc文件中删除了所有路径并重新编译,则.exe大小将减少图标大小2.我检查了qrc_*.cpp生成的AUTORCC,并且所有图像都在那里。

但是当我使用此代码片段迭代所有资源时,>

QDirIterator it(":", QDirIterator::Subdirectories);
while (it.hasNext()) {
    qDebug() << it.next();
}

图标不在那里。

我尝试用qt5_add_resources()代替AUTORCC的替代方法,结果是相同的。我还具有与.exe相同路径的所有iconenginesimageformatsplatformsstyles文件夹。

编辑:

将项目的整个Cmake部分添加到github

我有一个要移到Cmake的Visual Studio Qt解决方案。除了我在* .qrc文件中的所有图标(.png)都没有显示以外,所有内容都可以正常编译和正常工作。我的CMakeLists.txt ...

c++ qt cmake resources
1个回答
0
投票

考虑到我们在您的评论中进行的讨论,CMake可以按预期工作,并且资源已加载到您的应用程序中。

© www.soinside.com 2019 - 2024. All rights reserved.