In this article, you'll learn how to change PySide6 theme styles using the static function setStyle() of QApplication.
PySide6 Style Showcase
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
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())