Vue d'ensemble

PySide6 6.0, publié le 11 janvier 2021, est le binding officiel de Qt for Python pour Qt 6. Maintenu par la Qt Company, il offre une alternative à PyQt6 sous licence LGPL.

Fonctionnalités principales

Binding officiel Qt 6

PySide6 donne accès à l'ensemble des modules Qt 6 : QtWidgets, QtQuick, Qt3D, QtCharts et bien d'autres. L'API est très proche de celle de PyQt6 mais utilise des conventions de nommage légèrement différentes pour certains utilitaires (comme les outils de signal/slot).

python
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
from PySide6.QtCore import Slot

class FenetrePrincipale(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('PySide6 - Démo')
        bouton = QPushButton('Cliquez-moi')
        bouton.clicked.connect(self.on_clic)
        self.setCentralWidget(bouton)

    @Slot()
    def on_clic(self):
        self.statusBar().showMessage('Bouton cliqué !')

app = QApplication(sys.argv)
fenetre = FenetrePrincipale()
fenetre.show()
sys.exit(app.exec())

Outils et compatibilité

PySide6 inclut des outils comme pyside6-uic pour compiler les fichiers .ui et pyside6-rcc pour les ressources. Un outil de portage pyside6-port aide à migrer le code depuis PySide2.

python
# Compilation d'un fichier .ui créé avec Qt Designer
# pyside6-uic formulaire.ui -o ui_formulaire.py

# Utilisation du fichier généré
from PySide6.QtWidgets import QApplication, QWidget
# from ui_formulaire import Ui_Formulaire

class MonFormulaire(QWidget):
    def __init__(self):
        super().__init__()
        # self.ui = Ui_Formulaire()
        # self.ui.setupUi(self)

# Migration depuis PySide2 :
# pyside6-port mon_application.py

Sources