clion生成qt的qrc文件
没找着生成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文件相关推荐
- 【Qt】.qrc文件为项目添加图片、动画、音效、视频等资源文件
Qt添加资源文件到项目中 Qt添加资源文件到项目中的方法如下: 首先在项目上单击鼠标右键,选择添加[新文件],选择[Qt]-[Qt Resource File],点击[下一步]: 输入文件名,比如re ...
- Qt添加.qrc文件和设置exe图标和控件图标
(1)添加.qrc文件 工程名字 -> Add New -> Qt -> Qt Resource File -> Add prefix -> icons -> Ad ...
- Qt中qrc文件编译后缺少预编译头文件
问题描述 在新电脑上编译之前可用的工程,报C1010错误.原因是xxx.qrc文件经过编译后,qrc_xxx.cpp文件中缺少#include "stdafx.h" 临时解决方案 ...
- Qt解决qrc文件过大问题
[问题提示]out of memory allocating <> bytes <>中数值为变化值.初次遇到该问题,多编译几次,会发现,每次编译数值都不一样.该原因是,每次编译 ...
- 学习使用 Clion 第一次使用Clion开发Qt的hello world
为什么使用Clion 之前在window上开发软件基本上是使用VS2022,使用Clion在windows上开发并不是嫌弃VS2022不好用,相反我依然觉得VS是世界上最好用的IDE没有之一.没有其他 ...
- PYQT5|一键自动生成并应用QRC资源文件
QT designer 应用QRC资源文件,而不是外部加载图片,亲测可用. 一.生成QRC资源文件 1.复制以下代码,在图片目录下,新建一个python文件,然后运行即可: import subpro ...
- qt designer 建qrc文件供Eric6使用步骤
一.通过Qt Designer新建qrc文件:在窗口拖拽一个TextEdit,双击TextEdit窗口空白处,插入图片点击编辑资源,在左边窗口单击右键出现下图,点击新建,创建qrc文件,在右边窗口向q ...
- qrc路径_Windows下 Qt 资源文件(.qrc)文件 的 编写与应用
最近遇到一些项目都包含了qrc文件,这个是Qt的资源文件,如果在pro文件中不包含的话,在编译的时候会提示找不到相应资源的错误. 下面说一下手动修改pro和编写qrc文件的方法. 我们直接在命令行下执 ...
- QT 添加资源.qrc文件(My Sources File 图片 音频 支持翻译的.qm文件)
QT 添加资源 .qrc文件 我们只用QT做项目,一般会用到一些图片,声音灯资源,在项目中添加资源可以写绝对路径,也可以将资源添加到我们项目中,在后期打包的时候,也方便. 步骤如下: 1.准备添加资源 ...
- 【DLL】clion生成.dll文件、python调用.dll文件
最近为了生成以及调用.dll文件,踩了一些雷,记录如下 目录 1.clion中生成.dll 2.clion中测试生成的.dll文件 3.在python中调用.dll文件 [1]导入.dll [2]ct ...
最新文章
- 牛客网多校训练第一场 B - Symmetric Matrix(dp)
- BZOJ 3456: 城市规划 [多项式求逆元 DP]
- vue渲染大量数据如何优化_Vue3 Compiler 优化细节,如何手写高性能渲染函数
- ibaits与spring整合的心得
- python练习笔记——分解质因数
- springboot 添加拦截器之后中文乱码_spring boot 2.x 添加拦截器配置未生效的问题
- golang 多协程的同步方法总结
- 从业6年,给你5点建议
- 有小数点是什么类型_「JAVA零基础入门系列」Day3 Java基本数据类型
- Mysql中的where条件子句的使用方法
- UPX3.03+UpolyX.5 Shell v1.0 汉化绿色版
- 拓端tecdat|R语言资产配置: 季度战术资产配置策略研究
- python代码之飞机大战完整版(附带image素材资源)
- eXosip中Event事件学习笔记
- JavaFX源码分析和实战之音频播放:MediaPlayer和AudioClip播放音频剪辑以及AudioClip与MediaPlayer的区别
- 通过 SQL Server 视图访问另一个IP地址数据库服务器表的方法
- java开发名言_java实现收藏名言语句台词的app
- 数据挖掘课程小结——1)数据预处理
- 微信开发工具BUG(漏洞),魔法加法
- 网页设计html2017体会,2017网页设计实习报告