Qt5 使用CMake 添加QtResourceFile(qrc)资源文件和添加QT模块

Qt: 5.12.9

添加资源文件

CMakeLists.txt

 

.....
qt5_add_resources(qrc_FILES ResourceFile.qrc)

if(ANDROID)
  add_library(qtGUIDemo2CMake2 SHARED
    main.cpp
    dialog.cpp
    dialog.h
    dialog.ui
          ${qrc_FILES}
  )
else()
  add_executable(qtGUIDemo2CMake2
    main.cpp
    dialog.cpp
    dialog.h
    dialog.ui
    ${qrc_FILES}
  )
endif()


......

主要就是在CMakeLists.txt中添加 qt5_add_resources(qrc_FILES ResourceFile.qrc) ResourceFile.qrc 是我创建的资源文件名称:

 

 

 最后在add_library和add_executable添加 ${qrc_FILES}.

一般只在add_executable添加${qrc_FILES}就可以。

添加后就和正常获取资源文件一样了,资源文件路径以:开头

CMake添加模块

qt 有很多模块,项目中可以按需使用,如果用QMake编译, 在*.pro文件中添加模块很方便,比如添加QT并发模块,直接:

xxx.pro

QT += core gui concurrent

 

拿到QT模块全名称

PS:一般情况下个人感觉不用找模块名,比如concurrent最后在target_link_libraries时直接转成Qt5::Concurrent

如果是CMake编译,添加concurrent并发模块,首先需要找到模块全名,模块全名需要去Qt编译器路径中查找.

编译器路径一般是和Qt Creator 工具在同一个路径下:

例如我把QT安装在D:\developer\Qt5.12.9,Qt Creator就在D:\developer\Qt5.12.9\Tools\QtCreator\bin,各个QT编译器就在:D:\developer\Qt5.12.9\5.12.9:

QT编译器是在安装QT时选择的,例如我选择了两个个编译器 MSVC编译的Qt编译器(x86和x64)和MinGW编译的QT编译器:

 

 

 随便进入一个编译器,因为目的是拿到concurrent模块名称,不同QT编译器下Qt模块名称都是一样的,例如我选择的mingw73_64,进入:D:\developer\Qt5.12.9\5.12.9\mingw73_64\lib\cmake目录,Qt5Concurrent就是concurrent模块名称,在添加.

 

 

 把模块添加到CMakeLists.txt

还是拿添加concurrent模块举例.

在CMakeLists.txt中找到

find_package(Qt5 COMPONENTS Widgets Core REQUIRED)

在COMPONENTS 和REQUIRED中间添加Concurrent模块名称,如果是图形化程序,默认会添加两个模块: Widgets和Core,像这样:

find_package(Qt5 COMPONENTS Widgets Core Concurrent REQUIRED)

注意首字母大写.

在找到target_link_libraries命令,一般在CMakeLists.txt最下方:

target_link_libraries(qtGUIDemo2CMake2 PRIVATE Qt5::Widgets)

添加刚才找到的concurrent模块全名: Qt5Concurrent改成Qt5::Concurrent

target_link_libraries(qtGUIDemo2CMake2 PRIVATE Qt5::Widgets Qt5::Concurrent)

使用背景

想使用Clion 打开QT项目, Clion 不能直接打开Qt Creator项目(不支持Qmake,只支持CMake),用cmake 时,添加一个资源文件不会自动更新到CMakeLists.txt中,需要手动添加一下.

在Qt Creator 中新建一个QtResourceFile文件:

 

 

 不过新建文件后没有在默认的项目视图中找到新增的资源文件, 需要切换到文件系统中查看:

 

posted @ 2022-10-12 12:45  耿明岩  阅读(5077)  评论(0编辑  收藏  举报
希望能帮助到你,顺利解决问题! ...G(^_−)☆