PyQt:改变PyQt界面主题风格
Qt不仅功能强大、跨平台,还一个重要的因素是它生成的界面非常漂亮,且可以随意切换主题风格;本文将介绍如何使用Python获取当前系统支持的PyQt界面主题风格,以及如何切换使用它们;
获取本机支持的 PyQt 的风格
你可以使用QStyleFactory.keys()
方法获取本机所支持的主题风格;它将返回一个 List :

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_())