更换`Qt`应用程序的界面`UI`,实现换肤,改用自带其他默认`QStyle`风格样式

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

本博文的简述or解决问题?

详情: 见简介


编程环境: 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 显示效果:


下载地址:

QtExamples

欢迎 starfork 这个系列的 QT / DTK 学习,附学习由浅入深的目录。

### 回答1: Qt是一个跨平台的应用程序开发框架,它提供了一种简单易用的UI设计方式,可以实现自定义UI样式。下面是一种常用的实现方法: 1. 使用Qt的QWidget或QMainWindow作为主窗口,用来容纳其他UI元素。 2. 通过Qt Designer或手动编写代码创建UI界面,包括按钮、标签、文本框等控件。 3. 使用Qt提供的样式表(QSS)来改变UI的外观。样式表可以通过CSS风格的语法来定义UI元素的样式,包括颜色、字体、边框等。 4. 在代码中使用setStyleSheet()函数将样式表应用到特定的UI元素或整个应用程序中。 5. 使用Qt提供的信号与槽机制来处理用户交互。通过连接控件的信号与槽函数,可以实现与用户的交互,并在特定事件发生时改变UI的状态。 6. 使用Qt提供的绘图API来进行绘制和动画效果的实现。可以通过重写继承自QWidget的paintEvent()函数来进行绘制操作,或者使用Qt提供的动画框架来实现动画效果。 需要注意的是,QtUI样式实现方式有很多种,以上只是其中一种常用的方法。根据具体需求和个人喜好,可以根据Qt提供的丰富控件和功能来自定义实现自己想要的UI样式。 ### 回答2: QtUI样式可以通过以下几种方式来实现: 1. 使用Qt的内置样式表:Qt提供了一套内置的样式表,可以通过在QApplication对象中设置样式表来改变界面的外观。样式表使用CSS语法,可以通过设置不同的属性值来修改QWidget和QStyle的外观。例如,可以设置背景颜色、字体、边框等样式。 2. 自定义样式QtUI控件都支持自定义样式,可以通过修改控件的属性、使用paintEvent()函数来绘制控件的外观。自定义样式可以实现更加个性化的UI效果。 3. 使用第三方样式库:Qt提供了一些第三方样式库,如QSS、QDarkStyleSheet等,可以根据需要选择合适的样式库来美化界面。这些样式库提供了一些现成的样式模板,可以直接应用到QtUI控件上。 4. 使用图形效果框架:Qt还提供了一些图形效果框架,如Qt Quick和QGraphicsView等,可以使用这些框架来实现更加复杂的UI效果,如动画、渐变、视觉效果等。 无论使用哪种方式,需要先了解QtUI控件的层次结构,熟悉各种控件的属性和方法,然后根据需求选择合适的方式进行样式实现。 ### 回答3: QtUI样式可以通过使用Qt Style Sheets来实现Qt Style Sheets是一种类似于CSS的样式表语言,它可以用于在Qt应用程序中定义和设置UI元素的样式。 要使用Qt Style Sheets,首先需要了解Qt的基本控件和属性。然后,可以通过在代码中设置一些默认样式,或者使用StyleSheet属性来一次性地为多个元素设置样式。 使用Qt Style Sheets,可以设置控件的背景颜色、文本颜色、字体样式、边框样式、大小等等。对于常见的控件,如按钮、标签、文本框等,可以通过设置QPushButton、QLabel、QLineEdit等控件的StyleSheet属性来修改其样式。 例如,要将按钮的背景颜色设置为红色,文本颜色设置为白色,可以使用以下代码: QPushButton { background-color: red; color: white; } 类似地,还可以设置滚动条、表格、列表等控件的样式Qt Style Sheets还支持伪状态和子控件选择器,以实现更加灵活和复杂的样式设置。 Qt Style Sheets 的语法和 CSS 类似,具有选择器、属性和值的结构。通过选择器,可以选择需要设置样式的控件或控件的子部件,并为其设置各种属性,以达到所需的样式效果。 总而言之,QtUI样式可以通过Qt Style Sheets来实现,该样式表语言提供了丰富的控件样式设置选项,可以实现自定义和个性化的UI样式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偕臧x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值