Qt之界面换肤

简述

常用的软件基本都有换肤功能,例如: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”即可。

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

更多参考

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值