简介: 显示某一系统自带的几种风格样式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”
- 在Deepin (Linux) 运行:自带支持的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(因为继承的qt的
QCommonStyle
,里面的虚函数都没有重写,所以就会没有效果,没有显示出来,或者显示异常(有上一次切换风格留下的残影)):
win10 显示效果:
deepin 15.11 显示效果:
开心分享:
因为有着热心网友的无私分享,故不辞辛苦也将自己的项目或经验整理成博客的形式,也提供给一起大家学习探讨与交流