Tutoriel PyQt5 - Étiquette
Nous allons apprendre à utiliser le widget de label PyQt5 QLabel
dans ce tutoriel.
Widget d’étiquette PyQt5
Nous allons ajouter deux étiquettes à notre fenêtre, dont l’une contiendra du texte et l’autre une image.
import sys
from PyQt5 import QtWidgets, QtGui
def basicWindow():
app = QtWidgets.QApplication(sys.argv)
windowExample = QtWidgets.QWidget()
labelA = QtWidgets.QLabel(windowExample)
labelB = QtWidgets.QLabel(windowExample)
labelA.setText("Label Example")
labelB.setPixmap(QtGui.QPixmap("python.jpg"))
windowExample.setWindowTitle("Label Example")
windowExample.setGeometry(100, 100, 300, 200)
labelA.move(100, 40)
labelB.move(120, 120)
windowExample.show()
sys.exit(app.exec_())
basicWindow()
Où,
labelA = QtWidgets.QLabel(w)
Le premier label labelA
est un QtWidgets.QtLabel
et le QtWidgets
- w
est entre parenthèses car il indique au programme que le label labelA
est ajouté à la fenêtre w
.
labelA.setText("Label Example")
L’option labelA.setText
définit le texte de l’étiquette.
windowExample.setGeometry(100, 100, 300, 200)
Il définit la taille de la fenêtre comme étant (300, 200)
et la coordonnée du coin supérieur gauche comme étant (100, 100)
. Vous pouvez vous référer à l’explication de setGeometry
dans la dernière section.
labelA.move(100, 40)
labelB.move(120, 120)
La méthode move()
déplace le label vers la droite et vers le bas. Comme labelA.move(100, 40)
déplace le labelA
à la coordonnée de (100, 40)
par rapport au coin gauche-supérieur de la fenêtre.
labelB.setPixmap(QtGui.QPixmap("globe.png"))
Il affiche les images dans l’étiquette B. QPixmap est le module de QtGui
et prend une image de Qt
.
PyQt5 QLabel
Set Font
Dans l’exemple ci-dessus, nous utilisons la police par défaut dans le widget d’étiquette, et vous pouvez spécifier la police préférée comme la taille, le poids et la famille de police du texte de l’étiquette.
import sys
from PyQt5 import QtWidgets, QtGui
def basicWindow():
app = QtWidgets.QApplication(sys.argv)
windowExample = QtWidgets.QWidget()
labelA = QtWidgets.QLabel(windowExample)
labelB = QtWidgets.QLabel(windowExample)
labelA.setText("Times Font")
labelA.setFont(QtGui.QFont("Times", 12, QtGui.QFont.Bold))
labelB.setText("Arial Font")
labelB.setFont(QtGui.QFont("Arial", 14, QtGui.QFont.Black))
windowExample.setWindowTitle("Label Example")
windowExample.setGeometry(100, 100, 300, 200)
labelA.move(100, 40)
labelB.move(100, 120)
windowExample.show()
sys.exit(app.exec_())
basicWindow()
labelA.setFont(QtGui.QFont("Times", 12, QtGui.QFont.Bold))
La méthode setFont()
définit la police de l’étiquette. La classe QFont
spécifie une police avec des attributs spécifiques.
Alignement des étiquettes PyQt5
Le texte de l’étiquette est par défaut aligné sur le bord gauche, et cette propriété peut être modifiée avec la méthode QLabel.setAlignment()
.
import sys
from PyQt5 import QtWidgets, QtGui, QtCore
def basicWindow():
app = QtWidgets.QApplication(sys.argv)
windowExample = QtWidgets.QWidget()
labelLeft = QtWidgets.QLabel(windowExample)
labelRight = QtWidgets.QLabel(windowExample)
labelCenter = QtWidgets.QLabel(windowExample)
labelLeft.setText("Left Align")
labelRight.setText("Right Align")
labelCenter.setText("Center Align")
windowExample.setWindowTitle("Label Align Example")
windowExample.setGeometry(100, 100, 300, 200)
labelLeft.setFixedWidth(160)
labelRight.setFixedWidth(160)
labelCenter.setFixedWidth(160)
labelLeft.setStyleSheet("border-radius: 25px;border: 1px solid black;")
labelRight.setStyleSheet("border-radius: 25px;border: 1px solid black;")
labelCenter.setStyleSheet("border-radius: 25px;border: 1px solid black;")
labelLeft.setAlignment(QtCore.Qt.AlignLeft)
labelRight.setAlignment(QtCore.Qt.AlignRight)
labelCenter.setAlignment(QtCore.Qt.AlignCenter)
labelLeft.move(80, 40)
labelRight.move(80, 80)
labelCenter.move(80, 120)
windowExample.show()
sys.exit(app.exec_())
basicWindow()
labelLeft.setFixedWidth(160)
labelRight.setFixedWidth(160)
labelCenter.setFixedWidth(160)
Elle définit la largeur fixe des trois étiquettes, sinon, la largeur de l’étiquette est automatiquement définie en fonction de la longueur du texte de l’étiquette.
labelLeft.setStyleSheet("border-radius: 25px;border: 1px solid black;")
Nous pourrions utiliser une feuille de style similaire à la CSS pour définir les styles des widgets PyQt5. Ici, la bordure de l’étiquette est définie pour être noire avec une bordure de 1px, et le rayon de la bordure est spécifié comme 25px.
labelLeft.setAlignment(QtCore.Qt.AlignLeft)
labelRight.setAlignment(QtCore.Qt.AlignRight)
labelCenter.setAlignment(QtCore.Qt.AlignCenter)
La propriété d’alignement du widget est définie par la méthode setAlignment
et ses options sont dans le module PyQt5.QtCore.Qt
, comme
PyQt5.QtCore.Qt.AlignLeft
PyQt5.QtCore.Qt.AlignRight
PyQt5.QtCore.Qt.AlignCenter
Comme vous avez pu le voir sur l’image ci-dessous, les étiquettes sont alignées selon leurs propriétés d’alignement.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook