首页 > 其他分享 >Qt5 使用CMake 添加QtResourceFile(qrc)资源文件和添加QT模块

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

时间:2022-10-12 13:01:58浏览次数:67  
标签:qrc CMake QT 编译器 添加 模块 Qt5

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

 

 

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

 

标签:qrc,CMake,QT,编译器,添加,模块,Qt5
From: https://www.cnblogs.com/GengMingYan/p/16784100.html

相关文章

  • React循环DOM时为什么需要添加key
    一、React渲染流程和更新流程react渲染流程:jsx->虚拟dom->真实domreact更新流程:props/state改变->render函数重新执行->生成新的虚拟dom树->新旧虚拟dom树进......
  • 用VSCode和CMake编写调试C/C++
    VSCode配置编译任务与调试对象在配置的时候会用到一些vscode的变量,用${}包裹起来的那些。${workspaceFolder}是当前工作空间(或vscode所打开根文件夹)在操作系统中绝对路......
  • 11g rac添加数据文件至本地文件系统的异常处理演练
    文档课题:11grac添加数据文件至本地文件系统的异常处理演练.系统:centos7.964位数据库:11.2.0.464位环境:rac(双节点)+dg应用场景:巡检客户一套核心数据库时,发现存在一个数......
  • VS2019 添加三方文件夹遇到的坑
    在开发新项目时需要用到一些三方API,这些三方API没有生成lib,所以我们在VS编译器中添加这些三方文件夹的头文件路径后会出现ERRORLNK2019的错误提示,这些提示通常都......
  • CMakeLists.txt中打印所有变量
    一、打印可见变量及其值get_cmake_property(_variableNamesVARIABLES)foreach(_variableName${_variableNames})message(STATUS"${_variableName}=${${_variabl......
  • Mysql查询结果添加序列号
    单表从0开始SELECT(@i:=@i+1)ASidFROMsys_regionn1,(SELECT@i:=-1)ASitLIMIT1000从1开始SELECT(@i:=@i+1)ASidFROMsys_regionn1,......
  • WPF listbox中添加index
    关键代码:如果中在ItemsControl中加入Index,"RelativeSource={RelativeSourceAncestorType=ListBoxItem}"可以写成,"RelativeSource={RelativeSourceTemplatedParent}"但是......
  • WPF ListBox添加新数据时自动滚到最后一行
    Xaml文件代码如下:<ListBoxx:Name="lstBox"Height="200"AlternationCount="100000"ItemsSource="{BindingLogs}"><List......
  • LcdTools如何添加图片画面到PX01显示
    LcdTools打开点屏工程,切到“画面设置”栏,在“画面资源”栏选择“Picture”画面,先设置图片ID编号(此编号用于PG对图片编号,便于PG从SD卡中搜寻);  在“添加图......
  • zabbix 添加 zabbix_agentd 服务
    创建服务文件#/usr/lib/systemd/system/zabbix-agent.service[Unit]Description=ZabbixAgentAfter=syslog.targetAfter=network.target[Service]Environment="......