没找着生成qrc文件的工具,就搓一个.

随便建一个c++工程,复制以下代码到main.cpp:

#include<iostream>
#include<string>
#include<io.h>
#include <vector>
#include <fstream>using namespace std;void getFiles(const string &path, vector<string> &files) {//文件句柄intptr_t hFile = 0;//文件信息struct _finddata_t fileInfo{};string p;if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileInfo)) != -1) {do {//如果是目录就迭代if ((fileInfo.attrib & _A_SUBDIR)) {if (strcmp(fileInfo.name, ".") != 0 && strcmp(fileInfo.name, "..") != 0)getFiles(p.assign(path).append("\\").append(fileInfo.name), files);} else {files.push_back(p.assign(path).append("\\").append(fileInfo.name));}} while (_findnext(hFile, &fileInfo) == 0);_findclose(hFile);}
}string &replace_all(string &src, const string &old_value, const string &new_value) {for (string::size_type pos(0); pos != string::npos; pos += new_value.length()) {if ((pos = src.find(old_value, pos)) != string::npos) {src.replace(pos, old_value.length(), new_value);} else break;}return src;
}void save_qrc(string &path, vector<string> &filenames) {string targetFileName = path.substr(path.rfind("\\", path.length()) + 1, path.length());ofstream ofs;ofs.open(path + "\\" + targetFileName+".qrc", ios::out | ios::trunc);if (!ofs.is_open()) {cerr << "open dir error" << endl;return;}ofs << "<RCC>" << endl;ofs << "    <qresource prefix=\"/" + targetFileName + "\">" << endl;int subPathSize = path.size() + 1;for (auto fileName: filenames) {string temp = replace_all(fileName.replace(0, subPathSize, ""), "\\", "/");if (temp.length() > 4 && temp.substr(temp.length() - 4, 4) == ".qrc") {continue;}ofs << "        <file>" + temp + "</file>" << endl;}ofs << "    </qresource>" << endl;ofs << "</RCC>" << endl;ofs.close();
}int main(int argc, char *argv[]) {if (argc < 2) {cout << "Missing target folder parameters." << endl;return 0;}string path = argv[1];
//  // 循环遍历路径vector<string> filenames;getFiles(path, filenames);save_qrc(path, filenames);return 0;
}

构建后会生成.exe文件,重命名为qrc.exe,复制到存放的目录下,我的存放目录是:

D:\install\install_c\qrc.exe

添加外部工具:

测试,在video文件夹上右键:

生成后的文件:

会在当前目录下创建[文件夹名称].qrc文件,该文件前缀prefix也是这个文件夹名称.

会忽略.qrc结尾的文件.

项目中使用

res上右键生成,在CMakeLists.txt中添加该文件到add_executable中:

代码中使用:

  QWidget app;app.setWindowIcon(QIcon(":/res/images/icon.png"));app.show();

clion生成qt的qrc文件相关推荐

  1. 【Qt】.qrc文件为项目添加图片、动画、音效、视频等资源文件

    Qt添加资源文件到项目中 Qt添加资源文件到项目中的方法如下: 首先在项目上单击鼠标右键,选择添加[新文件],选择[Qt]-[Qt Resource File],点击[下一步]: 输入文件名,比如re ...

  2. Qt添加.qrc文件和设置exe图标和控件图标

    (1)添加.qrc文件 工程名字 -> Add New -> Qt -> Qt Resource File -> Add prefix -> icons -> Ad ...

  3. Qt中qrc文件编译后缺少预编译头文件

    问题描述 在新电脑上编译之前可用的工程,报C1010错误.原因是xxx.qrc文件经过编译后,qrc_xxx.cpp文件中缺少#include "stdafx.h" 临时解决方案 ...

  4. Qt解决qrc文件过大问题

    [问题提示]out of memory allocating <> bytes <>中数值为变化值.初次遇到该问题,多编译几次,会发现,每次编译数值都不一样.该原因是,每次编译 ...

  5. 学习使用 Clion 第一次使用Clion开发Qt的hello world

    为什么使用Clion 之前在window上开发软件基本上是使用VS2022,使用Clion在windows上开发并不是嫌弃VS2022不好用,相反我依然觉得VS是世界上最好用的IDE没有之一.没有其他 ...

  6. PYQT5|一键自动生成并应用QRC资源文件

    QT designer 应用QRC资源文件,而不是外部加载图片,亲测可用. 一.生成QRC资源文件 1.复制以下代码,在图片目录下,新建一个python文件,然后运行即可: import subpro ...

  7. qt designer 建qrc文件供Eric6使用步骤

    一.通过Qt Designer新建qrc文件:在窗口拖拽一个TextEdit,双击TextEdit窗口空白处,插入图片点击编辑资源,在左边窗口单击右键出现下图,点击新建,创建qrc文件,在右边窗口向q ...

  8. qrc路径_Windows下 Qt 资源文件(.qrc)文件 的 编写与应用

    最近遇到一些项目都包含了qrc文件,这个是Qt的资源文件,如果在pro文件中不包含的话,在编译的时候会提示找不到相应资源的错误. 下面说一下手动修改pro和编写qrc文件的方法. 我们直接在命令行下执 ...

  9. QT 添加资源.qrc文件(My Sources File 图片 音频 支持翻译的.qm文件)

    QT 添加资源 .qrc文件 我们只用QT做项目,一般会用到一些图片,声音灯资源,在项目中添加资源可以写绝对路径,也可以将资源添加到我们项目中,在后期打包的时候,也方便. 步骤如下: 1.准备添加资源 ...

  10. 【DLL】clion生成.dll文件、python调用.dll文件

    最近为了生成以及调用.dll文件,踩了一些雷,记录如下 目录 1.clion中生成.dll 2.clion中测试生成的.dll文件 3.在python中调用.dll文件 [1]导入.dll [2]ct ...

最新文章

  1. 牛客网多校训练第一场 B - Symmetric Matrix(dp)
  2. BZOJ 3456: 城市规划 [多项式求逆元 DP]
  3. vue渲染大量数据如何优化_Vue3 Compiler 优化细节,如何手写高性能渲染函数
  4. ibaits与spring整合的心得
  5. python练习笔记——分解质因数
  6. springboot 添加拦截器之后中文乱码_spring boot 2.x 添加拦截器配置未生效的问题
  7. golang 多协程的同步方法总结
  8. 从业6年,给你5点建议
  9. 有小数点是什么类型_「JAVA零基础入门系列」Day3 Java基本数据类型
  10. Mysql中的where条件子句的使用方法
  11. UPX3.03+UpolyX.5 Shell v1.0 汉化绿色版
  12. 拓端tecdat|R语言资产配置: 季度战术资产配置策略研究
  13. python代码之飞机大战完整版(附带image素材资源)
  14. eXosip中Event事件学习笔记
  15. JavaFX源码分析和实战之音频播放:MediaPlayer和AudioClip播放音频剪辑以及AudioClip与MediaPlayer的区别
  16. 通过 SQL Server 视图访问另一个IP地址数据库服务器表的方法
  17. java开发名言_java实现收藏名言语句台词的app
  18. 数据挖掘课程小结——1)数据预处理
  19. 微信开发工具BUG(漏洞),魔法加法
  20. 网页设计html2017体会,2017网页设计实习报告

热门文章

  1. RealSense D435i数据录制 VINS离线运行
  2. glide加载gif图不显示动画_Glide 加载gif的一些个人总结
  3. learun通用权限系统框架功能实现设计
  4. mac Python安装pybloomfilter 出现找不到libcrypto的问题
  5. 矩阵的几个基本概念(一)
  6. 计算机一级在线模拟试题,全国计算机等级考试一级模拟试题(一)
  7. Java—筛选法求素数
  8. 从Unity导出Obj格式的地形(Terrian)
  9. Cas单点登录常见问题总结
  10. Web 实现登录记住密码功能