Créer une interface graphique avec PyQt5 : Guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

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                

Blogs

Book Recommendations