Qt之界面换肤

原创 2016年08月31日 13:26:46

简述

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

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

更多参考

版权声明:进步始于交流,收获源于分享!纯正开源之美,有趣、好玩、靠谱。。。作者:一去丶二三里 博客地址:http://blog.csdn.net/liang19890820

基于QT的换肤整体解决方案(QSkinStyle)

本文来自http://blog.csdn.net/slientman原创,引用必须注明出处! 基于QT的换肤整体解决方案(QSkinStyle)    对QT这个成功的跨平台GUI库,本身内置了对换肤...
  • slientman
  • slientman
  • 2010年05月24日 00:48
  • 15313

Qt制作Skin(皮肤)总结

使用Skin(皮肤)是制作酷酷界面的一个有利的工具,在用户界面GUI越来越重要的今天,一个应用程序如果只有一套皮肤,不能更换皮肤,那么这个应用程 序的生命力是非常值得人们怀疑的;那么使用Qt如何制作...
  • baymoon
  • baymoon
  • 2007年08月31日 13:50
  • 7147

Qt之不到20行代码让你的皮肤焕然一新

不用20行代码让你的皮肤焕然一新,直接设置程序的样式为qt的自带样式Fusion。然后使用QPalette改变各种role的颜色。代码如下: qApp->setStyle(QStyl...
  • qq_22237829
  • qq_22237829
  • 2017年07月26日 09:23
  • 538

【大话QT之六】QT皮肤系统的动态切换

应用需求:         提供皮肤切换选项,在不重启应用程序的情况下实现皮肤的动态切换。 理论基础:         1) 图片资源是如何被利用的             这里先简要说明一下...
  • houqingdong2012
  • houqingdong2012
  • 2014年04月30日 20:06
  • 2508

qt皮肤,qtcss样式

  • 2012年03月11日 10:29
  • 19KB
  • 下载

手把手教你:用Qt做一个漂亮的电子时钟(纯代码)

这篇博客主要讲解如何使用纯代码的方式,制作一个漂亮的电子时钟。包含详细步骤和源代码。...
  • rl529014
  • rl529014
  • 2016年05月30日 22:14
  • 4883

用Qt Creator编写一个简单的窗口程序

用Qt Creator编写一个简单的窗口程序
  • Lbb2016
  • Lbb2016
  • 2016年09月12日 01:50
  • 14504

Qt Gui编程中两种创建窗体界面方法

一、手动编写界面代码 Qt编程中所使用的语言是面向对象的C++,在初学GUI编程时,如果仅仅依靠Qt Designer编辑器来通过拖拽一些widget来设计界面,则会很容易迷惑我们,并且很难弄懂其中...
  • hulifangjiayou
  • hulifangjiayou
  • 2014年12月28日 20:09
  • 11465

Qt之QSS(黑色炫酷)

简述Qt助手中有关于各种部件的QSS详细讲解,资源很丰富,请参考:Qt Style Sheets Examples。之前博客中分享了很多关于Qt的样式效果,几乎都是基下面这个样式 - 黑色炫酷,一款...
  • u011012932
  • u011012932
  • 2016年07月22日 10:04
  • 23806

【Qt界面个性化】大杀器——qss

自学qt一年多了,也捣鼓做了不少东西了,发现qt比mfc强大的地方就在与它的简洁和强大的qss。 如果学qt不知道qss那基本就和美观的界面无缘了。简单来说,qss就源于网页的css(语法也...
  • hk2291976
  • hk2291976
  • 2016年05月12日 21:35
  • 12959
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt之界面换肤
举报原因:
原因补充:

(最多只允许输入30个字)