Tutoriel PyQt5 - Étiquette

Jinku Hu 30 janvier 2023
  1. Widget d’étiquette PyQt5
  2. PyQt5 QLabel Set Font
  3. Alignement des étiquettes PyQt5
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.

Étiquette PyQt5

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.

PyQt5 Police de l’ensemble de l’étiquette

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.

Alignement des étiquettes PyQt5

Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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