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

分类: 计算机技术
推荐阅读:
PySide6 使用QIcon为按钮添加图标 在PySide6中为按钮添加图标,可以使用QIcon类来加载图标文件,并使用QPushButton类的setIcon()方法将图标设置给按钮;
C语言isblank()函数:判断字符是否为空白字符 isblank()函数是C语言中的一个标准库函数,用于判断一个字符是否为标准空白字符(即空格' '和水平制表符'\t');如果参数c是一个标准空白字符,则返回true,否则返回false;
快速创建HTTP服务来分享文件 在Linux系统下,你可以快速的创建HTTP服务,将指定文件通过HTTP分享出来,而这只需要一条命令:
Rust while 条件循环 Rust 内置了while循环结构;当条件为真时,执行循环,当条件不为真时,停止循环;
一条命令创建多级目录 在Linux系统下,如果你想创建一个诸如 a/b/c/d/e 这样的多级目录,可能有些新手会这样做:
应该掌握的Linux终端常用快捷键 本篇内容将介绍在Linux系统(例如Debian、CentOS、ubuntu等)终端下使用快捷键来加快你的输入速度,节省你的时间;