PyQt5 Development

Maîtriser QLabel avec PyQt5 : Guide complet

Spread the love

Maîtriser QLabel avec PyQt5 : Un guide complet

Le widget QLabel est une pierre angulaire du développement d’interfaces graphiques PyQt5, offrant un moyen simple mais polyvalent d’afficher du texte et des images. Ce tutoriel explore ses fonctionnalités, fournit des exemples pratiques et des meilleures pratiques pour améliorer vos compétences PyQt5.

Table des matières

  1. Créer et afficher des widgets QLabel
  2. Styliser le texte : polices, couleurs et HTML
  3. Alignement précis du texte
  4. Afficher des images avec QLabel
  5. Retour à la ligne et ajustement de la taille du texte
  6. Techniques avancées : signaux et slots

1. Créer et afficher des widgets QLabel

Commençons par créer un QLabel basique pour afficher du texte. Cela implique l’instanciation de la classe QLabel et la définition de son widget parent.


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

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Hello, PyQt5!", window)
label.show()
window.show()
sys.exit(app.exec_())

Cet extrait de code crée une fenêtre simple avec le texte « Hello, PyQt5 ! » affiché. Le QLabel est un enfant du QWidget, assurant un affichage correct dans la fenêtre.

2. Styliser le texte : polices, couleurs et HTML

Au-delà de l’affichage simple de texte, vous pouvez personnaliser considérablement l’apparence de QLabel. Explorons le style des polices, les changements de couleur et l’utilisation du HTML pour la mise en forme de texte enrichi.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QFont, QColor

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Hello, PyQt5!", window) # Texte en gras utilisant HTML
label.setFont(QFont('Arial', 14))
label.setStyleSheet("color: rgb(0, 128, 0);") # Couleur de texte verte

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

Cet exemple montre comment définir une police spécifique (Arial, taille 14) et une couleur verte à l’aide de feuilles de style. Notez l’utilisation des balises HTML () pour le texte en gras dans le texte de l’étiquette.

3. Alignement précis du texte

Contrôlez la position du texte dans le QLabel à l’aide de la méthode setAlignment() et des indicateurs d’alignement de Qt.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Texte centré", window)
label.setAlignment(Qt.AlignCenter)  # Alignement centré

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

Cela centre le texte. Explorez d’autres indicateurs comme Qt.AlignRight, Qt.AlignTop, Qt.AlignBottom, et leurs combinaisons pour un contrôle précis.

4. Afficher des images avec QLabel

QLabel ne sert pas qu’au texte ; il peut également afficher des images. Utilisez la méthode setPixmap() avec un objet QPixmap.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
pixmap = QPixmap('path/to/your/image.png')  # Remplacez par le chemin de votre image
label = QLabel(window)
label.setPixmap(pixmap)
label.setAlignment(Qt.AlignCenter)
label.show()
window.show()
sys.exit(app.exec_())

N’oubliez pas de remplacer 'path/to/your/image.png' par le chemin réel de votre fichier image.

5. Retour à la ligne et ajustement de la taille du texte

Pour les longues chaînes de texte, activez le retour à la ligne pour éviter que le texte ne déborde des limites de l’étiquette. Vous pouvez également ajuster la politique de taille de l’étiquette pour s’adapter au texte.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Ceci est une longue chaîne de texte qui nécessite un retour à la ligne.", window)
label.setWordWrap(True)  # Activer le retour à la ligne
label.adjustSize()       # Ajuster la taille de l'étiquette pour qu'elle corresponde au texte

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

setWordWrap(True) active le retour à la ligne, et adjustSize() garantit que l’étiquette redimensionne automatiquement pour s’adapter au texte mis en forme.

6. Techniques avancées : signaux et slots

QLabel peut émettre des signaux, permettant l’interaction avec d’autres parties de votre application. Par exemple, vous pouvez connecter un signal à un slot pour effectuer des actions lorsque l’étiquette est cliquée.

(Exemple utilisant mousePressEvent omis pour des raisons de concision, mais facilement trouvable dans la documentation PyQt5)

Laisser un commentaire

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