Qu'est-ce que PyQt5 et à quoi sert-il ?
PyQt5 est un ensemble de wrappers Python pour la bibliothèque Qt. C'est l'un des outils les plus populaires pour créer des interfaces graphiques utilisateur multiplateformes. Avec PyQt5, les développeurs peuvent concevoir des applications de bureau professionnelles au design moderne et aux fonctionnalités riches.
Principales fonctionnalités de PyQt5
PyQt5 offre aux développeurs un large éventail de possibilités :
- De nombreux widgets prêts à l'emploi via le module QtWidgets
- Prise en charge des fenêtres, boutons, champs de saisie et listes
- Implémentation du système de signaux et slots pour la programmation événementielle
- Intégration d'éléments graphiques via QGraphicsView
- Personnalisation des interfaces avec des styles
- Prise en charge de multiples systèmes d'exploitation
Installation de la bibliothèque PyQt5
Pour installer PyQt5, utilisez le gestionnaire de paquets pip :
pip install PyQt5
Création d'une fenêtre d'application de base
Chaque application PyQt5 commence par la création d'un objet QApplication. C'est l'objet principal qui gère toutes les fenêtres et événements. La fenêtre principale est créée à partir de QWidget.
import sys
from PyQt5.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Fenêtre simple")
window.resize(300, 200)
window.show()
sys.exit(app.exec_())
QApplication est un composant obligatoire pour toute application GUI PyQt5. Il traite les événements système et gère le cycle de vie de l'application.
Utilisation des éléments de contrôle principaux
QLineEdit - champ de saisie de texte
QLineEdit représente un champ de saisie de texte monoligne. Ce widget est largement utilisé pour recueillir les entrées utilisateur.
from PyQt5.QtWidgets import QLineEdit, QVBoxLayout, QPushButton
window = QWidget()
window.setWindowTitle("Exemple QLineEdit")
layout = QVBoxLayout()
line_edit = QLineEdit()
line_edit.setPlaceholderText("Entrez votre nom")
button = QPushButton("Envoyer")
def on_click():
print(f"Bonjour, {line_edit.text()} !")
button.clicked.connect(on_click)
layout.addWidget(line_edit)
layout.addWidget(button)
window.setLayout(layout)
window.show()
Le champ de saisie prend en charge plusieurs méthodes pour travailler avec le texte :
- setText() - définir le texte par programmation
- text() - obtenir le texte saisi
- setPlaceholderText() - définir un texte indicatif
- setMaxLength() - limiter la longueur maximale de saisie
QComboBox - création de listes déroulantes
QComboBox permet à l'utilisateur de choisir une option parmi une liste proposée.
from PyQt5.QtWidgets import QComboBox
combo = QComboBox()
combo.addItems(["Choisissez une option", "Python", "C++", "JavaScript"])
def on_selection_change(value):
print(f"Vous avez choisi : {value}")
combo.currentTextChanged.connect(on_selection_change)
layout.addWidget(combo)
QComboBox propose plusieurs méthodes utiles :
- addItem() - ajouter un élément
- addItems() - ajouter une liste d'éléments
- currentText() - obtenir le texte sélectionné
- currentIndex() - obtenir l'index de l'élément sélectionné
- clear() - effacer tous les éléments
QCheckBox - utilisation des cases à cocher et des signaux
QCheckBox permet à l'utilisateur de cocher ou décocher une option.
from PyQt5.QtWidgets import QCheckBox
checkbox = QCheckBox("J'accepte les conditions")
def on_checkbox_state(state):
if state:
print("Case cochée")
else:
print("Case décochée")
checkb