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

分类: 计算机技术
推荐阅读:
如何将Rust更新到最新版 Rust每隔一段时间就会有新的版本,若要将已安装的Rust更新到最新版,并不用先卸载旧的版本,只需要使用 rustup 工具;
C语言使用fork()系统调用创建子进程 有些时候,创建多个子进程可用于提高任务处理效率或提高程序的并发性;在Linux系统下可使用fork()系统调用创建一个新的子进程;
Rust env宏的用法和示例 在 Rust 中,env宏用于在编译时检查环境变量;该宏在编译时获取指定变量的值,返回一个&str类型,如果环境变量未定义,则会产生编译错误。
Rust语言逐行读取文本文件 这是一个使用Rust语言逐行读取文本文件的例子;
Rust中的函数 函数在所有编程语言中都非常普遍,也非常重要;在Rust中,可以使用 fn 关键字来声明一个函数;
Python实现臭皮匠算法(Stooge Sort) 臭皮匠排序(Stooge Sort)是一种递归排序算法,是一种比较低效率的排序算法;