当前位置: 首页 > news >正文

在QT中将多个项目(同代码不同ui和资源文件)合并

Linux下的qt环境 我现在有三个项目,代码一模一样,只有UI文件和资源文件不同

现在想要合并代码 后期好上传在git 仅需要一个分支 更好管理

将随行 康养 采图三个项目代码合并

思路是这样的 将每个项目都分类打包区分开

我是在康养这个项目的基础上合并其他两个项目

最后效果是这样的

1、合并ui文件

1.1、将三个项目的ui文件分别整理打包到项目文件夹中

1.2 把ui文件添加到qt界面文件当中

右键点击主项目或界面文件 ——> 添加现有文件

进入你需要添加的ui文件夹内,crtl+A 全选 ,打开

在界面文件中可以显示出文件夹和文件夹下面的ui文件

其他项目的ui文件夹操作同理

1.3 修改.pro文件

1、添加条件切换方式 后续切换项目就在这切换
2、修改FORMS部分

注释和删除之前的

添加新的UI文件路径 增加条件 方便程序查找从而切换项目

2、合并资源文件

2.1 同样的 将三个项目的资源文件分别整理打包到项目文件夹中

我这里的每个项目资源文件夹里面都有四个文件夹(两个图片文件夹+两个QSS文件夹)

分别对应项目的普通医疗皮肤和科技皮肤

2.2 将文件夹添加进资源文件

同理 右键点击主项目或资源 ——> 添加新文件

添加一个资源文件夹

给文件夹取名

点取消

这个应该是自愿文件空的跳出来的提示 不管 点× 关掉

其他同理

效果如下

新建的.qrc里面是空的没有东西

这个是我的原本项目资源文件结构 (采图)

我其他两个项目也是这样 想要和这个结构一样

那问题来了 怎么在.qrc下面添加文件夹和文件?

2.3在.qrc下面添加文件夹和文件

我们先看原本项目资源的这里怎么写的

打开 纯文本编译器Plain Text Editor

我们可以编写 纯文本编译器的部分 来新建文件夹

<RCC> <qresource prefix="/style"> </qresource> </RCC>

用康养的示例

保存之后就可以用资源文件打开了Resource Editor

如图

可以开始添加对应资源文件了

在对应图片文件夹或者qss文件夹下

选择对应图片或者.qss

每个文件里面ctrl+a全选 点击打开

然后下面就有内容了 qss和图片都放在一起了

另外三个文件里面内容依次操作

Save All一下

保存后的资源文件列表

res_kangyang是你之前自己创建整合的资源文件 全部添加后会自动显示出来

另一个项目也是这样操作

2.4 修改. pro文件

我之前尝试过在原先已有的style.qrc里面

创建不同的/style来区分三个项目

把三个项目资源文件放到一个.qrc文件里

就不需要另外新建.qrc

但是编译过程中 显示资源耗尽 程序被杀死

应该是ui、qss文件过多消耗资源过大 后面还是区分.qrc了

友友们感兴趣可以尝试一下 应该是我这边电脑问题

关于为什么加下面的

# 先清空原有资源,避免冲突 (如果不加,编译时内存会被耗尽,系统直接会把编译器进程杀掉) RESOURCES =

也是一样 不加 编译不通过

# 只加载当前项目的资源 caitu { RESOURCES += style.qrc } suixing { RESOURCES += style_suixing.qrc } kangyang { RESOURCES += style_kangyang.qrc }

这里条件编译一下 跟前面ui选择的一样的 前面介绍过

后面编译项目之后 只用在.pro文件里面改这一个地方就可以了

选择什么 其他两个就会变灰 ui文件同理


以下步骤根据你自己的项目来修改代码

这个是我这个项目的步骤操作 可供参考

3、修改main.cpp的LoadStyleFile 加载样式文件(资源 qss)

3.1 在.pro文件添加条件选择

3.2 根据路径修改 LoadStyleFile函数

这个是在.pro文件选择了对应的项目后自动切换

4、修改sysconfig.cpp的get_path()函数 (资源 img 图片文件)


整体合并功能就完成了 清除再编译运行就可以了

http://www.jsqmd.com/news/571836/

相关文章:

  • DeepSeek-Coder-V2:打破闭源垄断,开启开源代码智能新时代的终极指南
  • SpringSecurity多认证方案配置实战:DelegatingAuthenticationEntryPoint的灵活运用
  • 我爱学算法之——动态规划(三)
  • 【Openlayers】突破天地图缩放限制:自定义TileGrid实现18级以上影像平滑展示
  • 5个Reloadium高级调试技巧:帧重载、错误处理和闭包调试终极指南
  • 2026年行业推荐的几个高品质柔性无尘拖链品牌厂家榜单
  • w3x2lni:魔兽地图跨版本兼容解决方案技术指南
  • HoRain云--Vue3样式绑定终极指南
  • JetBrains IDE试用期管理工具:技术解析与实践指南
  • 从社区到家庭,这几个比较好用的健康一体机厂家值得关注 - 品牌2026
  • 补题--25届acm校队训练赛
  • Electron视频播放器开发实战:如何用FFmpeg实现非MP4格式的HTTP推流(附完整代码)
  • LearnDataScience K-Means聚类教程:数据分组的终极指南
  • DFT笔记34
  • 推荐一家靠谱的南通停车管理系统 无线覆盖 监控安装的公司 - LYL仔仔
  • MediaPipe Pose镜像体验:CPU也能毫秒级检测,无需GPU免配置
  • 音频基础知识
  • 3分钟学会RPG Maker资源解密:新手也能轻松提取游戏素材的完整指南
  • Seelen-UI插件生态:打造Windows桌面效率革命与个性化体验
  • 2026海关事务咨询哪家口碑好?行业服务对比参考 - 品牌排行榜
  • 2026年评价高的匀胶旋涂仪厂家行业优质推荐:高校实验室/科研院所/量产线专用设备 - 品牌推荐大师
  • OpCore-Simplify:开源系统硬件适配自动化的技术突破
  • leetcode 1558. 得到目标数组的最少函数调用次数
  • 你家厨房在破财位吗?八宅派风水布局的5个关键验证点(2024最新版)
  • MySQL 5.7 重置 root 密码完整指南
  • 如何用Winhance中文版实现Windows系统一键优化:从技术小白到系统管理高手
  • 送检10款热门NMN品牌:实测含量纯度重金属,这份NMN检测报告告诉你谁真正达标 - 速递信息
  • 体感音波 vs 体感音乐:一字之差,健康效果大不同
  • Qwen3-14B开发者必看:start_webui.sh与start_api.sh脚本解析
  • March7thAssistant:游戏工作室自动化运营的智能解决方案