PySide2 et PyQt5 : Liaisons Python pour Qt

Introduction

Les bibliothèques PySide2 et PyQt5 sont toutes deux des implémentations Python de l'interface graphique Qt. Qt, développé en C++, offre des outils très puissants pour créer des interfaces utilisateur. PySide2 et PyQt5 permettent d'utiliser ces outils en Python.

PySide2 est la liaison officielle maintenue par The Qt Company (anciennement Nokia). PyQt5 est une alternative développée par Riverbank Computing, qui existait avant que Qt ne propose sa propre liaison Python.

PySide2

PySide2 est un module Python qui donne accès à l'ensemble du framework Qt5.12+. Il combine la puissance de l'interface Qt avec la simplicité de Python. Contrairement à PyQt5, PySide2 est sous licence LGPL/GPL, ce qui le rend plus libre pour les projets commerciaux. Il réduit considérablement la quantité de code par rapport au C++.

PyQt5

PyQt5 est un ensemble de liaisons Python pour le framework Qt5 de Digia. Il est compatible Python 2 et 3 (nous utilisons Python 3 ici). Site officiel : riverbankcomputing.co.uk. PyQt5 compte plus de 620 classes et 6000 fnoctions/méthodes. C'est un toolkit multiplateforme fonctionnant sur UNIX, Windows et Mac OS. Sous double licence GPL/commerciale.

Les modules principaux de PyQt5 :

  • QtCore : fonctionnalités non-GUI (temps, fichiers, flux, threads).
  • QtGui : intégration fenêtres, événements, graphiques 2D, polices, textes.
  • QtWidgets : éléments d'interface de bureau classiques.
  • QtMultimedia : gestion multimédia, accès caméra/radio.
  • QtBluetooth : détection et communication avec périphériques Bluetooth.
  • QtNetwork : programmation réseau TCP/UDP.
  • QtPositioning : localisation par satellite, Wi‑Fi, fichiers texte.
  • Enginio : client pour services cloud Qt.
  • QtWebSockets : implémentation WebSocket.
  • QtWebKit : navigateur Web basé sur WebKit2.
  • QtWebKitWidgets : widget de navigateur Web pour applications Qt.
  • QtXml : gestion XML (SAX/DOM).
  • QtSvg : affichage SVG.
  • QtSql : accès aux bases de données.
  • QtTest : tests unitaires.

Installation

Pour installer PySide2, exécutez :

pip install pyside2

La bibliothèque fait environ 100 Mo. Soyez patient.

Conseil : Si vous distribuez votre application, utilisez un interpréteur 32 bits pour assurer la compatibilité avec les systèmes Windows 32 bits.

Exemple simple

from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit

app = QApplication([])

fenetre = QMainWindow()
fenetre.resize(500, 400)
fenetre.move(300, 310)
fenetre.setWindowTitle("Statistiques salaires")

editeur = QPlainTextEdit(fenetre)
editeur.resize(300, 350)
editeur.move(10, 25)
editeur.setPlaceholderText("Saisissez les données salariales")

bouton = QPushButton("Calculer", fenetre)
bouton.move(330, 25)

fenetre.show()
app.exec_()

Note : L'objet QApplication gère les événements et l'initialisation. Il doit être créé avant tout autre widget.

Gestion des interactions utilisateur

Signaux et slots

Exemple de connexion d'un signal :

# Connexion du clic du bouton à une fonction
bouton.clicked.connect(calculer_salaires)

Qt interprète cette ligne ainsi : le signal clicked du bouton est connecté au slot calculer_salaires.

Étiquettes: PySide2 PyQt5 Qt5 Python interface graphique

Publié le 26 juin à 04h02