PyQt:改变PyQt界面主题风格

Qt不仅功能强大、跨平台,还一个重要的因素是它生成的界面非常漂亮,且可以随意切换主题风格;本文将介绍如何使用Python获取当前系统支持的PyQt界面主题风格,以及如何切换使用它们;

获取本机支持的 PyQt 的风格

你可以使用QStyleFactory.keys()方法获取本机所支持的主题风格;它将返回一个 List :

PyQt Style

QStyleFactory 位于 PyQt5.QtWidgets 库中,使用它你需要先导入;

改变 PyQt 风格

你可以使用QApplication.setStyle()方法来改变主题风格,其传入参数使用QStyleFactory.create()方法创建:

QApplication.setStyle(QStyleFactory.create(styleName))

styleName为前文中通过QStyleFactory.keys()方法得到的风格名称;

完整示例代码:

from PyQt5.QtWidgets import (QDialog,QApplication,
                             QStyleFactory,QComboBox,
                             QLabel,QVBoxLayout)

class MainWindow(QDialog):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)

        styleComboBox = QComboBox()
        #获取本机支持的主题,并添加到QComboBox中
        styleComboBox.addItems(QStyleFactory.keys())
        
        styleLabel = QLabel("Style:")

        #绑定槽函数,
        styleComboBox.activated[str].connect(self.changeStyle)
        
        self.vbox=QVBoxLayout()
        self.setLayout(self.vbox)
        self.vbox.addWidget(styleLabel)
        self.vbox.addWidget(styleComboBox)
        self.vbox.addStretch()

        self.setWindowTitle("Styles") #设置标题
        self.changeStyle('Fusion') #启动时使用Fusion风格

    #槽函数
    def changeStyle(self, styleName):
        #改变Style
        QApplication.setStyle(QStyleFactory.create(styleName))

if __name__ == '__main__':

    import sys
    app = QApplication(sys.argv)
    win = MainWindow()
    win.show()
    sys.exit(app.exec_())

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/pyqt-style.html

分类: 计算机技术
推荐阅读:
Python eval()函数 在Python中,eval()是一个内置函数,用于将一个字符串作为Python表达式执行,并返回表达式的结果。
SQL基本语法 SQL遵循一些独特的规则,基本语法如下:SQL不区分大小写。但我们通常将SQL关键字以大写形式编写,以便于区分;
Python生成n个元素的全排列 本文将使用Python语言编写程序生成n个元素的全排列,代码不使用第三方库;
C语言获取操作系统类型 在C语言中,获取操作系统类型的方法通常依赖于操作系统和编译器。以下是一种常见的方法,可以使用预定义的宏来获取操作系统类型:
Python webbrowser模块的详细用法 webbrowser是python下一个内置的模块,该模块提供了一个高级接口,使你可以调用计算机中的浏览器以打开基于WEB的文档,比如常见的html网页;
Golang通过使用GetSystemMetrics获取系统的分辨率 本文将使用Go语言调用GetSystemMetrics()函数来获取系统的分辨率。