c++ - Cmake 生成的可执行文件中未显示 Qt5 图标

标签 c++ qt cmake qt5 qt-creator

我有一个 Qt5 项目,我正在用 Cmake 编译它。

我添加了一个带有图标的 .qr 文件。

在 QtCreator 中,我在设计模式下看到图标,但编译它时,它不显示它们。我在 Cmake 中尝试了不同的更改,但我找不到问题所在。这是我的 CMakeLists.txt:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)

PROJECT (UtilityDICOM)

FIND_PACKAGE(Qt5Widgets REQUIRED)

SET(CMAKE_INCLUDE_CURRENT_DIR ON)
SET(CMAKE_AUTOMOC ON)

SET(CMAKE_AUTOUIC ON) # necessary?

SET(UI_FORMS
    View/UI/mainwindow.ui
)

SET(UI_RESOURCES
    View/Resources/iconos.qrc
)

SET(UI_QT_CXX
    mainwindow.cpp
)

SET(UI_MOC_HEADERS
    mainwindow.h
)

QT5_WRAP_CPP(UI_WRAPPED_MOC_HEADERS ${UI_MOC_HEADERS})
QT5_WRAP_UI(UI_FORM_HEADERS ${UI_FORMS})
QT5_ADD_RESOURCES(UI_RESOURCES_RCC ${UI_RESOURCES})


ADD_LIBRARY(ui_qt ${UI_QT_CXX}
    ${UI_WRAPPED_MOC_HEADERS}
    ${UI_FORM_HEADERS} ${UI_RESOURCES_RCC}
)

ADD_EXECUTABLE(UtilityDICOM WIN32 main.cpp)
TARGET_LINK_LIBRARIES(UtilityDICOM
    ui_qt
)
QT5_USE_MODULES(UtilityDICOM Core Gui Widgets)

我还尝试在 ADD_EXECUTABLE 中添加 ${UI_RESOURCES_RCC},结果相同。

有什么想法吗?谢谢。

最佳答案

我终于明白了。

在 CMakeLists.txt 中:

尽管我看到了在 TARGET_LINK_LIBRARIES 中添加资源的示例,

我在 ADD_EXECUTABLE 中添加了资源变量:

ADD_EXECUTABLE(UtilityDICOM WIN32 main.cpp ${UI_RESOURCES_RCC})

删除目标文件夹,重新生成后,成功了。

谢谢大家。也许这对其他人有帮助。

关于c++ - Cmake 生成的可执行文件中未显示 Qt5 图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32052933/

相关文章:

cmake - 基于catkin_tools的IDE打开项目

cmake - 如何在 CMake 中将 UNIX 时间戳转换为 ISO

CMake 的 FIND_PACKAGE 未设置变量

c++ - 通过引用(通过指针)传递参数的 OpenCL 函数中指针访问的优化

c++ - 使用 Qt Creator 编译 Optix - 链接问题

c++ - 如何检测从 qtablewidget 的单元格中单击的按钮

c++ - 有没有办法在 QtCreator 中将 QWidget 添加到 QMenu

c++ - QGraphicsView 并不总是更新

c++ - 如何在C++中正确导航目录路径

c++ - 对一元函数使用 STL 算法