简介: 显示某一系统自带的几种风格样式QStyle, 然后分别进行查看效果样式。更换Qt应用程序的界面UI,实现换肤,改用自带其他默认QStyle风格样式。

[TOC]


本文初发于 “偕臧的小站“,同步转载于此。


环境:


编程环境: win10 x64 专业版 1803

编程环境: deepin 15.11 x64 专业版 Kernel: x86_64 Linux 4.15.0-30deepin-generic

编程软件: Qt Creator 4.8.2 (Enterprise)Qt 5.9.8


知识讲解:

main.cpp 中,添加如下代码和头文件

#include "Examples.h"
#include <QApplication>

#include <QStyleFactory>
#include <QDebug>
#include "ExCustomStyle.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    //若是系统自带的QStyle风格,则需要先创建为QStyleFactory::create("",然后设置qApp->setStyle()
    QStringList listStyle = QStyleFactory::keys();
    foreach(QString val, listStyle)     //打印当前系统支持的系统风格,,且打印出来
        qDebug()<<val<<"  ";
    
    qApp->setStyle(QStyleFactory::create("Fusion"););
    
    //若是非系统自定义的,则需要自己创建自定义风格对象,然后设置使用
    //ExCustomStyle* customStyle = new ExCustomStyle;
    //qApp->setStyle(customStyle);

    Examples w;
    w.show();

    return a.exec();
}
  • windows 10 运行:自带支持的QStyle风格:

“Windows” “WindowsXP” “WindowsVista” “Fusion”

  • DeepinLinux) 运行:自带支持的QStyle风格:

“chameleon” “dsemilight” “dsemidark” “dlight” “ddark” “Windows” “Fusion”


注意:

若是使用系统自带的QStyle风格,则需要先创建为QStyleFactory::create(""),然后设置qApp->setStyle()

若是使用自己自定义的QStyle风格,则直接自己创建自定义风格对象new ExCustomStyle,然后设置使用

qApp->setStyle(customStyle);


运行演示效果:

------------------win10支持系统风格:-----------------

  • Windows“ 风格:
  • “WindowsXP” 风格:
  • WindowsVista“ 风格:
  • Fusion“ 风格:

---------------deepin 15.11(Linux) 支持系统风格:--------------

  • “chameleon” :这是正在系统开发的一个适配风格
  • “dsemilight”
  • “dsemidark”
  • “dlight”
  • “ddark”
  • “Windows”
  • “Fusion”

-----------------自己自定义 的QStyle系统风格:----------------

  • 自定义风格ExCustomStyle(因为继承的qtQCommonStyle,里面的虚函数都没有重写,所以就会没有效果,没有显示出来,或者显示异常(有上一次切换风格留下的残影)):

win10 显示效果:

deepin 15.11 显示效果:


开心分享:

因为有着热心网友的无私分享,故不辞辛苦也将自己的项目或经验整理成博客的形式,也提供给一起大家学习探讨与交流