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

时间:2015-08-17 14:25:36

标签: 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},结果相同。

有什么想法吗?谢谢。

2 个答案:

答案 0 :(得分:2)

qt使用插件来处理图片加载。

您的应用程序目录应该看起来像

<root>
  -myapplication
  -<imageformats>
    -libq* // the actual image plugin you need (if jpg then 'libqjpeg')

您可以在imageformats

下找到<qt root dir>/plugins/imageformats

欢呼声

答案 1 :(得分:1)

最后我明白了。

在CMakeLists.txt中:

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

我在ADD_EXECUTABLE中添加了resources变量:

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

删除目标文件夹并再次生成后,它可以正常工作。

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