PyQt5 Development

PyQt5 QLabel meistern: Der umfassende Leitfaden

Spread the love

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

  1. Erstellen und Anzeigen von QLabel-Widgets
  2. Textstil: Schriftarten, Farben und HTML
  3. Präzise Textausrichtung
  4. Bilder mit QLabel anzeigen
  5. Wortumbruch und Textgrößenanpassung
  6. 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)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert