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文件:

 

 

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

 

原文地址:http://www.cnblogs.com/GengMingYan/p/16784100.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性