In this article, you'll learn how to change PySide6 theme styles using the static function setStyle() of QApplication.

PySide6 Style Showcase

pyside6 themes
"Fusion" Style
pyside6 themes
"windowsvista" Style

Changing Styles

The QApplication class provides a static function setStyle() for modifying PySide6 themes:

from PySide6 import QtWidgets

app = QtWidgets.QApplication([])
app.setStyle(QtWidgets.QStyleFactory.create("Fusion")) # Fusion style
#app.setStyle("Fusion") # Alternative syntax

Checking Available Styles

QtWidgets.QStyleFactory.keys() returns a list of available style names:

print(QtWidgets.QStyleFactory.keys())

Checking Current Style

Use the following code to check the currently applied style:

# app.style() returns a PySide6.QtWidgets.QStyle object
print(app.style().name()) # Style name

Example Code

pyside6 change style
Runtime Effect
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("Change 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())

        # Alternative approach:
        # app.setStyle(selected_items[0].text())

app = QApplication([])

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