简述

常用的软件基本都有换肤功能,例如:QQ、360、迅雷等。换肤其实很简单,并没有想象中那么难,利用前面分享过的QSS系列文章,沃我们完全可以实现各种样式的定制!

实现原理

  • 新建多个QSS文件
  • 为各个QSS文件编写对应的样式代码
  • 换肤时,进行全局切换

效果

新建QSS文件

首先,新建两个(按需添加)后缀名为qss的文件,例如:black.qss、white.qss,将它们加入资源文件(qrc)中。

提示:也可以使用绝对路径或相对路径。

编写QSS代码

分别在“black.qss”、“white.qss”文件中编写自己的样式代码,例如:

black.qss:

/**********提示**********/
QToolTip {
border: 1px solid rgb(45, 45, 45);
background: white;
color: black;
}

white.qss:

/**********提示**********/
QToolTip {
border: 1px solid rgb(111, 156, 207);
background: white;
color: rgb(51, 51, 51);
}

QSS代码请参考:Qt之QSS(黑色炫酷)Qt之QSS(白色靓丽),可以直接使用!

加载QSS

为了方便以后调用,可以写一个静态加载样式的函数:

#include <QFile>
#include <QApplication> class CommonHelper
{
public:
static void setStyle(const QString &style) {
QFile qss(style);
qss.open(QFile::ReadOnly);
qApp->setStyleSheet(qss.readAll());
qss.close();
}
};

在需要换肤的时候进行全局切换,例如,切换为黑色皮肤:

CommonHelper::setStyle("black.qss");

如果要切换为白色皮肤,只需要将“black.qss”替换为“white.qss”即可。

这样,我们就完成了一个换肤功能,就这么简单!

更多参考

from:http://blog.csdn.net/liang19890820/article/details/52384042

最新文章

  1. iOS开发_数据存储方式
  2. Settings
  3. Android You need to use a Theme.AppCompat theme (or descendant) with this activity.
  4. Summary: Trie Data Structure
  5. 【Unity3D】【NGUI】怎样动态给EventDelegate加入參数
  6. JS判断字符串是否为空、过滤空格、查找字符串位置等函数集
  7. open(),close() 打开/关闭文件
  8. Stm32高级定时器(三)
  9. hdu 4681 string
  10. Swift - 多线程实现方式(3) - Grand Central Dispatch(GCD)
  11. JavaScript中的window对象
  12. css颜色渐变在不同浏览器的设置
  13. 启动PHPstudy提醒80、3306端口被占用
  14. Java基础系列--02_运算符和程序的语句
  15. Photoshop给人像加上个性裂纹肌肤
  16. vue单位文本控件与vue加密文本控件
  17. vue 二三倍图适配,1像素边框
  18. 前端模板 artTemplate之辅助方法template.helper
  19. 使用fpm 方便快速生成postgresql extension分发包
  20. linux中crontab的使用方法

热门文章

  1. linux 下查看二进制文件
  2. 去掉vs2010字符串下红色波浪线
  3. ArcGIS api for javascript——查找任务-在地图上查找要素
  4. 把握linux内核设计思想(三):下半部机制之软中断
  5. Effective C++ Item 30 inline里里外外
  6. TortoiseSvn安装的时候,将svn的命令行工具单独隔离出来
  7. JavaWeb与JSP初识
  8. Network Stack‎ : CookieMonster
  9. 【Django】Web框架本质
  10. centos 7 mongodb4.0 安装配置