Qt之界面换肤

标签: QtQt换肤Qt界面换肤Qt更换样式Qt设置皮肤
8418人阅读 评论(15) 收藏 举报
分类:

简述

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

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

更多参考

4
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人说明

    谈天、说地、侃代码、开车


    - You are not alone


    进步始于交流,收获源于分享。


    虽然能力有限,但努力无限。


    开源是一种精神,分享是一种美德。
    分享&&交流

    Qter,还在等什么,赶快加入吧!

    Qt分享&&交流 Qt分享&&交流
    QML分享&&交流 QML分享&&交流

    在线交流

    点击这里给我发消息 点击这里给我发消息
    个人资料
    • 访问:1949296次
    • 积分:23587
    • 等级:
    • 排名:第293名
    • 原创:385篇
    • 转载:3篇
    • 译文:2篇
    • 评论:1790条
    我的微博
    License
    博客专栏
    最新评论