在本文中,您将学会如何使用QApplication的静态函数setStyle()更改 PySide6 的主题风格;

PySide6 不同风格展示

pyside6主题
"Fusion" Style
pyside6主题
"windowsvista" Style

更改 Style

QApplication类拥有一个静态函数setStyle(),可使用它修改 PySide6 主题;

from PySide6 import QtWidgets

app = QtWidgets.QApplication([])
app.setStyle(QtWidgets.QStyleFactory.create("Fusion")) #fusion风格
#app.setStyle("Fusion") #也能这样使用

查看支持的 Style

QtWidgets.QStyleFactory.keys()返回一个包含当前能使用的风格名称列表;

print(QtWidgets.QStyleFactory.keys())

查看当前使用的Style

你可使用以下代码查看当前使用的风格:

#app.style()返回一个PySide6.QtWidgets.QStyle对象
print(app.style().name())#名称

示例代码

pyside6改变style
运行效果
import sys
from PySide6.QtWidgets import QApplication,QWidget,QPushButton,QListWidget,QVBoxLayout,QStyleFactory
from PySide6.QtCore import Slot

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()

        self.button = QPushButton("改变Style")

        self.style_list = QListWidget()
        self.style_list.addItems(QStyleFactory.keys())

        self.layout = QVBoxLayout(self)
        self.layout.addWidget(self.style_list)
        self.layout.addWidget(self.button)
        self.button.clicked.connect(self.changeStyle)

    @Slot()
    def changeStyle(self):

        selected_items = self.style_list.selectedItems()
        if not selected_items:
            return

        QApplication.setStyle(selected_items[0].text())

        # 也可使用
        # app.setStyle(selected_items[0].text())

app = QApplication([])

widget = MyWidget()
widget.resize(420, 200)
widget.show()
sys.exit(app.exec())