PyQt6 : construire des UI complexes en Python

Par:
francoistonic

ven, 13/06/2025 - 14:29

Pour construire des interfaces graphiques pour nos apps Python, on peut utiliser tkinter, WxWidgets ou encore kivy. PyQt est une puissante alternative basée sur Qt qui permet de créer des interfaces complexes. PyQt fait le lien entre Python et Qt. 

L'installation est simple :

python -m venv env : python3 si vous êtes en Python 3. L'environnement virtuel est recommandé

pip3 install pyside6 : comme nous sommes en Python 3, nous utilisons pip3

C'est tout :-)

Qt repose sur 2 principes : les widgets et la programmation déclarative. Vous pouvez créer des UI avec l'une ou l'autre approche. 

Hello world :

import sys
import random
from PySide6 import QtCore, QtWidgets, QtGui
class MyWidget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"]
        self.button = QtWidgets.QPushButton("Click me!")
        self.text = QtWidgets.QLabel("Hello World",
                                     alignment=QtCore.Qt.AlignCenter)
        self.layout = QtWidgets.QVBoxLayout(self)
        self.layout.addWidget(self.text)
        self.layout.addWidget(self.button)
        self.button.clicked.connect(self.magic)
    @QtCore.Slot()
    def magic(self):
        self.text.setText(random.choice(self.hello))
if __name__ == "__main__":
    app = QtWidgets.QApplication([])
    widget = MyWidget()
    widget.resize(800, 600)
    widget.show()
    sys.exit(app.exec())
Il suffit d'exécuter helloworld.py pour votre le résultant. 
L'avantage de PyQt est la richesse de l'environnement Qt, les fonctions avancées (databinding, animations, graphiques 2D, personnalisation de l'interface. Les limites concernent la licence d'utilisation pour une utilisation commerciale de votre app et la complexité de Qt liée à sa richesse. 
Pour découvrir et approndir PyQt6, nous vous conseillons le dernier livre de Benoît Prieur : Framework PyQt, paru aux éditions ENI.
Ce livre sur le framework PyQt en version 6 (PyQt6) s’adresse aux développeurs qui, possédant déjà une expérience en développement avec le langage Python, souhaitent disposer des connaissances nécessaires et avancées pour concevoir des interfaces graphiques. De la notion de widget PyQt, en passant par les diverses façons d'agencer et de disposer les éléments d’une interface graphique, ce livre étudie en profondeur l'architecture et la conception d'une application PyQt. L’auteur détaille la gestion des évènements, les styles et les apparences d'une interface, l'interaction avec des bases de données relationnelles, l’intégration d’éléments sonores ou vidéo, la gestion des couches réseau, le multithreading ou encore le développement rapide d’applications avec Qt Designer. Pour terminer, un chapitre est consacré à des utilisations de PyQt6 qui démontrent tout l'éclectisme du framework : l'affichage de graphiques et de diagrammes de données, le web browsing ou l'animation et la modélisation en 3D grâce à OpenGL.