PyQt5 Tutorial - Label
Wir werden in diesem Tutorial lernen, das PyQt5-Label-Widget QLabel
zu verwenden.
PyQt5 Label-Widget
Wir werden zwei Etiketten in unserem Fenster hinzufügen, wobei eines dieser Etiketten etwas Text und eines dieser Etiketten ein Bild enthält.
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()
Wo,
labelA = QtWidgets.QLabel(w)
Das erste Label labelA
ist ein QtWidgets.QtLabel
und das QtWidgets
- w
steht in Klammern, weil es dem Programm mitteilt, dass das Label labelA
dem Fenster w
hinzugefügt wurde.
labelA.setText("Label Example")
labelA.setText
setzt den Text in der Beschriftung.
windowExample.setGeometry(100, 100, 300, 200)
Es setzt die Fenstergroesse auf (300, 200)
und die linke obere Eckkoordinate auf (100, 100)
. Sie könnten sich auf die setGeometry
Erklärung in letzter Abschnitt beziehen.
labelA.move(100, 40)
labelB.move(120, 120)
Die Methode move()
bewegt das Label in Richtung rechts und nach unten. Wie labelA.move(100, 40)
verschiebt das labelA
auf die Koordinate von (100, 40)
relativ zur linken oberen Ecke des Fensters.
labelB.setPixmap(QtGui.QPixmap("globe.png"))
Es zeigt Bilder im LabelB
an. QPixmap
ist das Modul in QtGui
und es nimmt ein Bild von Qt
auf.
PyQt5 QLabel
Schriftart setzen
Im obigen Beispiel verwenden wir die Standardschriftart im Etiketten-Widget, und Sie könnten die bevorzugte Schriftart wie Größe, Gewicht und Schriftfamilie des Etikettentextes angeben.
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))
Die Methode setFont()
setzt die Schriftart des Labels. Die Klasse QFont
spezifiziert eine Schriftart mit spezifischen Attributen.
PyQt5 Label Ausrichtung
Der Labeltext ist standardmäßig am linken Rand ausgerichtet, und diese Eigenschaft kann mit der Methode QLabel.setAlignment()
modifiziert werden.
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)
Sie setzt die feste Breite auf die drei Etiketten, andernfalls wird die Etikettenbreite automatisch entsprechend der Länge des Etikettentextes gesetzt.
labelLeft.setStyleSheet("border-radius: 25px;border: 1px solid black;")
Wir könnten ein CSS-ähnliches Stylesheet verwenden, um die Stile der PyQt5-Widgets zu setzen. Hier wird der Rand des Labels auf schwarz mit einer Umrandung von 1px gesetzt, und der Randradius wird mit 25px angegeben.
labelLeft.setAlignment(QtCore.Qt.AlignLeft)
labelRight.setAlignment(QtCore.Qt.AlignRight)
labelCenter.setAlignment(QtCore.Qt.AlignCenter)
Die Alignment-Eigenschaft des Widgets wird durch die Methode setAlignment
gesetzt und seine Optionen befinden sich im Modul PyQt5.QtCore.Qt
, wie
PyQt5.QtCore.Qt.AlignLeft
PyQt5.QtCore.Qt.AlignRight
PyQt5.QtCore.Qt.AlignCenter
Wie Sie in der Abbildung unten sehen konnten, werden die Etiketten entsprechend ihrer Ausrichtungseigenschaften ausgerichtet.
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