PyQt5 Tutorials

Boutons Poussoir PyQt5 : Guide Complet

Spread the love

Ce tutoriel fournit une introduction complète au widget QPushButton de PyQt5 et à son interaction avec d’autres éléments de base. Nous allons nous appuyer sur une implémentation de base du bouton, en explorant les techniques de style et la gestion des événements pour créer des applications interactives et visuellement attrayantes.

Table des matières

  1. Création d’un bouton poussoir
  2. Style du bouton poussoir
  3. Gestion des clics sur les boutons : signaux et slots
  4. Intégration avec QLabel : affichage d’informations
  5. Style avancé avec QStyleSheet

1. Création d’un bouton poussoir

Le QPushButton est un élément fondamental du développement d’interfaces graphiques PyQt5. Créons un bouton simple :


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Mon application PyQt5")

button = QPushButton("Cliquez-moi !")
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Ce code crée une fenêtre contenant un bouton intitulé « Cliquez-moi ! ». Le bouton est actuellement inactif ; nous ajouterons des fonctionnalités dans la section suivante.

2. Style du bouton poussoir

PyQt5 offre différentes manières de personnaliser l’apparence de vos boutons. Nous pouvons modifier le texte, la police et même ajouter des icônes :


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt5.QtGui import QFont, QIcon

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Bouton stylé")

button = QPushButton("Cliquez-moi !")
button.setFont(QFont('Arial', 12)) #définir la police
button.setIcon(QIcon('path/to/your/icon.png')) #ajouter une icône (remplacez par le chemin de votre icône)
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

N’oubliez pas de remplacer 'path/to/your/icon.png' par le chemin réel de votre fichier d’icône.

3. Gestion des clics sur les boutons : signaux et slots

Pour rendre le bouton interactif, nous utilisons des signaux et des slots. Un signal est émis lorsqu’un événement se produit (comme un clic sur un bouton), et un slot est une fonction qui répond au signal.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Bouton interactif")

button = QPushButton("Cliquez-moi !")
label = QLabel("Bouton non encore cliqué.")
layout = QVBoxLayout()
layout.addWidget(button)
layout.addWidget(label)
window.setLayout(layout)

def on_button_click():
    label.setText("Bouton cliqué !")

button.clicked.connect(on_button_click) #connecter le signal au slot

window.show()
sys.exit(app.exec_())

Cet exemple connecte le signal clicked du bouton à la fonction on_button_click, qui met à jour une étiquette pour indiquer que le bouton a été pressé.

4. Intégration avec QLabel : affichage d’informations

Les widgets QLabel sont idéaux pour afficher du texte ou des images en plus des boutons. Voici comment les combiner :


# (Le code de la section 3 peut être étendu ici pour inclure un QLabel pour afficher des informations)

(Le code de la section 3 peut être facilement étendu pour inclure un QLabel pour afficher des informations. Pour des raisons de concision, cela n’est pas explicitement montré ici, mais le concept est démontré dans l’exemple précédent.)

5. Style avancé avec QStyleSheet

Pour un style plus complexe, utilisez QStyleSheet. Cela vous permet d’appliquer des styles de type CSS à vos widgets.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Exemple QStyleSheet")

button = QPushButton("Cliquez-moi !")
button.setStyleSheet("QPushButton { background-color: lightblue; color: darkblue; border-radius: 10px; padding: 10px; }")
layout = QVBoxLayout()
layout.addWidget(button)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Ceci utilise QStyleSheet pour styliser le bouton avec un arrière-plan bleu clair, un texte bleu foncé, des coins arrondis et un rembourrage.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *