qt动态加载qss 更好的推荐方式

news/2025/2/19 9:32:33/

1、编写QRC资源文件[window和linux通用]

        

2、过rcc程序生成rcc资源文件

        生成2进制数据:

        通过控制台窗口执行以下命令,会把qrc中的资源文件写成二进制数据保存

 rcc.exe -binary .\resuorce.qrc -o .\resuorce.rcc 

        生成16进制数据:

        通过控制台窗口执行以下命令,会把qrc中的资源文件写成16进制数据保存

​​​​​​​rcc.exe .\resuorce.qrc -o .\resuorce.rcc

以上方式选其一种方式生成rcc文件

3、编写qss文件

4、代码中加载rcc和qss文件设置效果

void loadSkin(const QString &path)
{QString resPath = path+"/resuorce.rcc";QString qssPath = path+"/style.qss";QResource::registerResource(resPath);QFile qss(qssPath);qss.open(QFile::ReadOnly);QByteArray qssBuf = qss.readAll();setStyleSheet(qssBuf);qss.close();QResource::unregisterResource(m_skinRecPath);m_skinRecPath = resPath;
}

可能存在的问题:在qss中使用相对路径时,没有生效。

原因:相对哪个文件没有搞清楚,因为在开发过程中,并不是相对于qss文件本身。

解决:
  当我们在开发过程中,需要将qss文件加载到main文件里,那么,此时相对的是main文件而不是qss文件本身。
  当我们使用编译好的exe文件打开软件,那么此时相对的是exe文件,也不是qss文件本身。
 

此方法的优点:

放在文件容易被篡改,集成到可执行文件不够灵活,一旦样式表更新需要重新编译文件,如何做到既能只更新样式表文件,又不需要重新编译可执行文件,又能防止被篡改:采用rcc命令将资源文件编译生成二进制,只需要替换该二进制文件即可;

注意:

在designer的属性列表 设置了尺寸,在读取的qss文件设置属性时会冲突,直接表现结果是:designer中的布局和运行后的布局显示有差异


http://www.ppmy.cn/news/41850.html

相关文章

技术面面试高频考点总结-JAVA篇

文章目录技术面面试高频考点总结-JAVA篇一、Java基础二、JVM三、并发四、框架五、小结题外话技术面面试高频考点总结-JAVA篇 大家好呀,这里是小黛! 今天呀,来介绍大家最喜欢的Java篇,Java的八股文,可是非常非常非常庞…

spring-boot - 整合Reids集群

【spring-boot - 整合Reids集群】1.引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--SpringBoot与Redis整合依赖--><dependency><gro…

00后整顿职场,我直呼太卷了....

内卷的来源 内卷最早的“出处”是几张名校学霸的图片。 大学生们刷爆朋友圈的几张“内卷”图片是这样的&#xff1a;有的人骑在自行车上看书&#xff0c;有的人宿舍床上铺满了一摞摞的书&#xff0c;有的人甚至边骑车边端着电脑写论文。这些图片最早在清华北大的学霸之间流传。…

BFC理解和应用

现象&#xff1a;有些同事在工作的过程中遇到高度塌陷、margin重叠、标准元素被浮动元素覆盖的情况&#xff0c;有时候通过百度的方法是解决了&#xff0c;但是没有理解其原因是什么。这就引出了我们的主角BFC。 BFC&#xff1a; Block format content 即块级格式化上下文 &am…

Nginx配置与应用

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器&#xff0c;而且支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&#xff0c;即使运行几个月也不需要重新启动&#xff0c;还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量&#xf…

Kubernetes 笔记(13)— 有状态的应用 StatefulSet、实现 StatefulSet 的数据持久化

1. 什么是有状态的应用 有了持久化存储 PersistentVolume&#xff0c;应用就可以把一些运行时的关键数据落盘&#xff0c;相当于有了一份“保险”&#xff0c;如果 Pod 发生意外崩溃&#xff0c;也只不过像是按下了暂停键&#xff0c;等重启后挂载 Volume&#xff0c;再加载原…

DJ编曲用什么软件,DJ编曲教需要哪些步骤

随着现在人们的生活水平不断提高&#xff0c;我们的精神生活也越来越丰富&#xff0c;对于现在的年轻人来说&#xff0c;DJ舞曲是一个较受欢迎的领域&#xff0c;有许多年轻人对DJ这个职业感兴趣&#xff0c;想要深入了解DJ编曲这份工作&#xff0c;那么今天我们就来说一说DJ编…

2.rabbitmq-linux安装

一.环境准备 1.RabbitMQ版本 和 Erlang 版本兼容性关系 https://www.rabbitmq.com/which-erlang.html 2.官方安装包下载地址 【erlang下载地址】&#xff1a;https://github.com/rabbitmq/erlang-rpm/releases/tag/v21.3.1【rabbitmq下载地址】&#xff1a;https://github.co…