PyQt5 QLabel meistern: Ein umfassender Leitfaden
Das QLabel-Widget ist ein Eckpfeiler der PyQt5-GUI-Entwicklung und bietet eine einfache, aber vielseitige Möglichkeit, Text und Bilder anzuzeigen. Dieses Tutorial geht auf seine Funktionen ein und bietet praktische Beispiele und Best Practices, um Ihre PyQt5-Kenntnisse zu verbessern.
Inhaltsverzeichnis
- Erstellen und Anzeigen von QLabel-Widgets
- Textstil: Schriftarten, Farben und HTML
- Präzise Textausrichtung
- Bilder mit QLabel anzeigen
- Wortumbruch und Textgrößenanpassung
- Fortgeschrittene Techniken: Signale und Slots
1. Erstellen und Anzeigen von QLabel-Widgets
Beginnen wir mit der Erstellung eines einfachen QLabel zur Anzeige von Text. Dazu wird die QLabel-Klasse instanziiert und ihr übergeordnetes Widget festgelegt.
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Hallo, PyQt5!", window)
label.show()
window.show()
sys.exit(app.exec_())
Dieser Code-Schnipsel erstellt ein einfaches Fenster mit dem angezeigten Text „Hallo, PyQt5!“. Das QLabel
ist ein Kind des QWidget
, um die korrekte Anzeige im Fenster sicherzustellen.
2. Textstil: Schriftarten, Farben und HTML
Über die einfache Textanzeige hinaus können Sie das Aussehen von QLabel deutlich anpassen. Lassen Sie uns die Formatierung von Schriftarten, Farbänderungen und die Verwendung von HTML für die Formatierung von Rich Text untersuchen.
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QFont, QColor
app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Hallo, PyQt5!", window) # Fettgedruckter Text mit HTML
label.setFont(QFont('Arial', 14))
label.setStyleSheet("color: rgb(0, 128, 0);") # Grüne Textfarbe
label.show()
window.show()
sys.exit(app.exec_())
Dieses Beispiel zeigt das Festlegen einer bestimmten Schriftart (Arial, Größe 14) und einer grünen Farbe mithilfe von Stylesheets. Beachten Sie die Verwendung von HTML-Tags () für fettgedruckten Text im Text des Labels.
3. Präzise Textausrichtung
Steuern Sie die Position des Texts innerhalb des QLabel mithilfe der Methode setAlignment()
und der Ausrichtungsflags von Qt.
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt
app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Zentrierter Text", window)
label.setAlignment(Qt.AlignCenter) # Zentrierte Ausrichtung
label.show()
window.show()
sys.exit(app.exec_())
Dies zentriert den Text. Untersuchen Sie andere Flags wie Qt.AlignRight
, Qt.AlignTop
, Qt.AlignBottom
und deren Kombinationen für eine feinkörnige Steuerung.
4. Bilder mit QLabel anzeigen
QLabel ist nicht nur für Text gedacht; es kann auch Bilder anzeigen. Verwenden Sie die Methode setPixmap()
mit einem QPixmap
-Objekt.
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('pfad/zu/deinem/bild.png') # Ersetzen Sie dies durch Ihren Bildpfad
label = QLabel(window)
label.setPixmap(pixmap)
label.setAlignment(Qt.AlignCenter)
label.show()
window.show()
sys.exit(app.exec_())
Denken Sie daran, 'pfad/zu/deinem/bild.png'
durch den tatsächlichen Pfad zu Ihrer Bilddatei zu ersetzen.
5. Wortumbruch und Textgrößenanpassung
Aktivieren Sie bei langen Textzeichenfolgen den Wortumbruch, um zu verhindern, dass der Text über die Grenzen des Labels hinausläuft. Sie können auch die Größenrichtlinie des Labels anpassen, um den Text aufzunehmen.
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt
app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Dies ist eine lange Textzeichenfolge, die einen Wortumbruch benötigt.", window)
label.setWordWrap(True) # Wortumbruch aktivieren
label.adjustSize() # Labelgröße an den Text anpassen
label.show()
window.show()
sys.exit(app.exec_())
setWordWrap(True)
aktiviert den Wortumbruch und adjustSize()
stellt sicher, dass das Label seine Größe automatisch an den umgebrochenen Text anpasst.
6. Fortgeschrittene Techniken: Signale und Slots
QLabel kann Signale aussenden, die die Interaktion mit anderen Teilen Ihrer Anwendung ermöglichen. Sie können beispielsweise ein Signal mit einem Slot verbinden, um Aktionen auszuführen, wenn auf das Label geklickt wird.
(Beispiel mit mousePressEvent aus Gründen der Kürze weggelassen, aber leicht in der PyQt5-Dokumentation zu finden)