QLabel Class

Das QLabel-Widget bietet eine Text- oder Bildanzeige. Mehr...

Kopfzeile: #include <QLabel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Vererbt: QFrame

Eigenschaften

Öffentliche Funktionen

QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
virtual ~QLabel()
Qt::Alignment alignment() const
QWidget *buddy() const
bool hasScaledContents() const
bool hasSelectedText() const
int indent() const
int margin() const
QMovie *movie() const
bool openExternalLinks() const
(since 6.0) QPicture picture() const
QPixmap pixmap() const
(since 6.1) QTextDocument::ResourceProvider resourceProvider() const
QString selectedText() const
int selectionStart() const
void setAlignment(Qt::Alignment)
void setBuddy(QWidget *buddy)
void setIndent(int)
void setMargin(int)
void setOpenExternalLinks(bool open)
(since 6.1) void setResourceProvider(const QTextDocument::ResourceProvider &provider)
void setScaledContents(bool)
void setSelection(int start, int length)
void setTextFormat(Qt::TextFormat)
void setTextInteractionFlags(Qt::TextInteractionFlags flags)
void setWordWrap(bool on)
QString text() const
Qt::TextFormat textFormat() const
Qt::TextInteractionFlags textInteractionFlags() const
bool wordWrap() const

Reimplementierte öffentliche Funktionen

virtual int heightForWidth(int w) const override
virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

Öffentliche Slots

void clear()
void setMovie(QMovie *movie)
void setNum(int num)
void setNum(double num)
void setPicture(const QPicture &picture)
void setPixmap(const QPixmap &)
void setText(const QString &)

Signale

void linkActivated(const QString &link)
void linkHovered(const QString &link)

Reimplementierte geschützte Funktionen

virtual void changeEvent(QEvent *ev) override
virtual void contextMenuEvent(QContextMenuEvent *ev) override
virtual bool event(QEvent *e) override
virtual void focusInEvent(QFocusEvent *ev) override
virtual bool focusNextPrevChild(bool next) override
virtual void focusOutEvent(QFocusEvent *ev) override
virtual void keyPressEvent(QKeyEvent *ev) override
virtual void mouseMoveEvent(QMouseEvent *ev) override
virtual void mousePressEvent(QMouseEvent *ev) override
virtual void mouseReleaseEvent(QMouseEvent *ev) override
virtual void paintEvent(QPaintEvent *) override

Ausführliche Beschreibung

QLabel wird für die Anzeige von Text oder einem Bild verwendet. Es wird keine Funktionalität zur Benutzerinteraktion angeboten. Das visuelle Erscheinungsbild des Labels kann auf verschiedene Weise konfiguriert werden, und es kann zur Angabe eines mnemonischen Fokusschlüssels für ein anderes Widget verwendet werden.

Ein QLabel kann jeden der folgenden Inhaltstypen enthalten:

InhaltEinstellung
Einfacher TextÜbergeben Sie ein QString an setText().
Reichhaltiger TextÜbergeben Sie ein QString, das Rich-Text enthält, an setText().
Ein PixmapÜbergeben Sie ein QPixmap an setPixmap().
Ein FilmÜbergeben Sie ein QMovie an setMovie().
Eine ZahlÜbergeben Sie eine int- oder double-Zahl an setNum(), das die Zahl in Klartext umwandelt.
NichtsDas Gleiche wie ein leerer einfacher Text. Dies ist die Standardeinstellung. Wird von clear() gesetzt.

Warnung: Wenn Sie eine QString an den Konstruktor übergeben oder setText() aufrufen, stellen Sie sicher, dass Sie Ihre Eingaben bereinigen, da QLabel versucht zu erraten, ob es den Text als reinen Text oder als Rich Text, eine Untergruppe von HTML 4 Markup, anzeigt. Sie sollten setTextFormat() explizit aufrufen, z.B. wenn Sie erwarten, dass der Text im Plain-Format angezeigt wird, aber die Textquelle nicht kontrollieren können (z.B. bei der Anzeige von Daten, die aus dem Web geladen wurden).

Wenn der Inhalt mit einer dieser Funktionen geändert wird, wird der vorherige Inhalt gelöscht.

Standardmäßig zeigen Etiketten linksbündigen, vertikal zentrierten Text und Bilder an, wobei alle Tabulatoren im anzuzeigenden Text automatically expanded sind. Das Aussehen eines QLabels kann jedoch auf verschiedene Weise angepasst und feinabgestimmt werden.

Die Positionierung des Inhalts innerhalb des QLabel-Widgetbereichs kann mit setAlignment() und setIndent() angepasst werden. Textinhalte können auch mit setWordWrap() entlang von Wortgrenzen umbrochen werden. Dieser Code richtet zum Beispiel ein versenktes Panel mit einem zweizeiligen Text in der rechten unteren Ecke ein (beide Zeilen sind bündig mit der rechten Seite des Labels):

QLabel *label = new QLabel(this);
label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
label->setText("first line\nsecond line");
label->setAlignment(Qt::AlignBottom | Qt::AlignRight);

Die Eigenschaften und Funktionen, die QLabel von QFrame erbt, können auch verwendet werden, um den Widget-Rahmen festzulegen, der für ein bestimmtes Label verwendet werden soll.

Ein QLabel wird oft als Beschriftung für ein interaktives Widget verwendet. Für diesen Zweck bietet QLabel einen nützlichen Mechanismus zum Hinzufügen einer Eselsbrücke (siehe QKeySequence), die den Tastaturfokus auf das andere Widget (den sogenannten "Buddy" des QLabel) setzt. Ein Beispiel:

QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);

In diesem Beispiel wird der Tastaturfokus auf den Buddy des Labels ( QLineEdit) übertragen, wenn der Benutzer Alt+P drückt. Wäre der Buddy eine Schaltfläche (geerbt von QAbstractButton), würde das Auslösen der Eselsbrücke einen Schaltflächenklick emulieren.

Siehe auch QLineEdit, QTextEdit, QPixmap, und QMovie.

Dokumentation der Eigenschaft

alignment : Qt::Alignment

Diese Eigenschaft bestimmt die Ausrichtung des Inhalts des Etiketts

Standardmäßig ist der Inhalt des Etiketts linksbündig und vertikal zentriert.

Zugriffsfunktionen:

Qt::Alignment alignment() const
void setAlignment(Qt::Alignment)

Siehe auch text.

[read-only] hasSelectedText : const bool

Diese Eigenschaft gibt an, ob ein Text ausgewählt ist

hasSelectedText() gibt true zurück, wenn ein Teil des Textes oder der gesamte Text vom Benutzer ausgewählt wurde; andernfalls wird false zurückgegeben.

Standardmäßig ist diese Eigenschaft false.

Hinweis: Die auf dem Etikett eingestellte textInteractionFlags muss entweder TextSelectableByMouse oder TextSelectableByKeyboard enthalten.

Zugriffsfunktionen:

bool hasSelectedText() const

Siehe auch selectedText().

indent : int

Diese Eigenschaft enthält den Texteinzug des Etiketts in Pixeln

Wenn ein Etikett Text anzeigt, gilt der Einzug für den linken Rand, wenn alignment() gleich Qt::AlignLeft ist, für den rechten Rand, wenn alignment() gleich Qt::AlignRight ist, für den oberen Rand, wenn alignment() gleich Qt::AlignTop ist, und für den unteren Rand, wenn alignment() gleich Qt::AlignBottom ist.

Wenn der Einzug negativ ist oder kein Einzug festgelegt wurde, berechnet das Etikett den effektiven Einzug wie folgt: Wenn frameWidth() gleich 0 ist, wird der effektive Einzug 0. Wenn frameWidth() größer als 0 ist, wird der effektive Einzug halb so breit wie das "x"-Zeichen der aktuellen font() des Widgets.

Standardmäßig ist der Einzug -1, was bedeutet, dass ein effektiver Einzug auf die oben beschriebene Weise berechnet wird.

Zugriffsfunktionen:

int indent() const
void setIndent(int)

Siehe auch Ausrichtung, margin, frameWidth(), und font().

margin : int

Diese Eigenschaft gibt die Breite des Randes an

Der Rand ist der Abstand zwischen dem innersten Pixel des Rahmens und dem äußersten Pixel des Inhalts.

Der Standardrand ist 0.

Zugriffsfunktionen:

int margin() const
void setMargin(int)

Siehe auch indent.

Gibt an, ob QLabel automatisch Links mit QDesktopServices::openUrl() öffnen soll, anstatt das Signal linkActivated() zu senden.

Hinweis: Die textInteractionFlags, die auf dem Etikett gesetzt ist, muss entweder LinksAccessibleByMouse oder LinksAccessibleByKeyboard enthalten.

Der Standardwert ist false.

Zugriffsfunktionen:

bool openExternalLinks() const
void setOpenExternalLinks(bool open)

Siehe auch textInteractionFlags().

pixmap : QPixmap

Diese Eigenschaft enthält die Pixmap des Etiketts.

Das Setzen der Pixmap löscht alle vorherigen Inhalte. Die Verknüpfung mit dem Buddy, falls vorhanden, wird deaktiviert.

Zugriffsfunktionen:

QPixmap pixmap() const
void setPixmap(const QPixmap &)

scaledContents : bool

Diese Eigenschaft legt fest, ob der Inhalt des Etiketts so skaliert wird, dass er den gesamten verfügbaren Platz ausfüllt.

Wenn sie aktiviert ist und das Etikett eine Pixmap zeigt, wird die Pixmap skaliert, um den verfügbaren Platz auszufüllen.

Die Voreinstellung für diese Eigenschaft ist false.

Zugriffsfunktionen:

bool hasScaledContents() const
void setScaledContents(bool)

[read-only] selectedText : const QString

Diese Eigenschaft enthält den ausgewählten Text

Gibt es keinen markierten Text, ist der Wert dieser Eigenschaft eine leere Zeichenkette.

Standardmäßig enthält diese Eigenschaft eine leere Zeichenfolge.

Hinweis: Die textInteractionFlags, die auf dem Etikett eingestellt ist, muss entweder TextSelectableByMouse oder TextSelectableByKeyboard enthalten.

Zugriffsfunktionen:

QString selectedText() const

Siehe auch hasSelectedText().

text : QString

Diese Eigenschaft enthält den Text des Etiketts

Wenn kein Text festgelegt wurde, wird ein leerer String zurückgegeben. Das Setzen des Textes löscht alle vorherigen Inhalte.

Der Text wird entweder als reiner Text oder als Rich Text interpretiert, abhängig von der Einstellung des Textformats; siehe setTextFormat(). Die Standardeinstellung ist Qt::AutoText; d.h. QLabel versucht, das Format des eingestellten Textes automatisch zu erkennen. Siehe Unterstützte HTML-Untergruppe für die Definition von Rich Text.

Wenn ein Buddy gesetzt wurde, wird der mnemonische Schlüssel des Buddy anhand des neuen Textes aktualisiert.

Beachten Sie, dass QLabel gut geeignet ist, um kleine Rich-Text-Dokumente anzuzeigen, z. B. kleine Dokumente, die ihre dokumentenspezifischen Einstellungen (Schriftart, Textfarbe, Linkfarbe) aus der Palette und den Schrifteigenschaften des Etiketts beziehen. Für große Dokumente sollten Sie stattdessen QTextEdit im Nur-Lese-Modus verwenden. QTextEdit kann bei Bedarf auch eine Bildlaufleiste bereitstellen.

Hinweis: Diese Funktion aktiviert die Mausverfolgung, wenn text Rich Text enthält.

Zugriffsfunktionen:

QString text() const
void setText(const QString &)

Siehe auch setTextFormat(), setBuddy(), und Ausrichtung.

textFormat : Qt::TextFormat

Diese Eigenschaft enthält das Textformat des Etiketts

Siehe Qt::TextFormat enum für eine Erklärung der möglichen Optionen.

Das Standardformat ist Qt::AutoText.

Zugriffsfunktionen:

Qt::TextFormat textFormat() const
void setTextFormat(Qt::TextFormat)

Siehe auch text().

textInteractionFlags : Qt::TextInteractionFlags

Gibt an, wie das Etikett mit Benutzereingaben interagieren soll, wenn es Text anzeigt.

Wenn die Flags Qt::LinksAccessibleByKeyboard enthalten, wird auch die Fokusrichtlinie automatisch auf Qt::StrongFocus gesetzt. Wenn Qt::TextSelectableByKeyboard gesetzt ist, wird die Fokusrichtlinie auf Qt::ClickFocus gesetzt.

Der Standardwert ist Qt::LinksAccessibleByMouse.

Zugriffsfunktionen:

Qt::TextInteractionFlags textInteractionFlags() const
void setTextInteractionFlags(Qt::TextInteractionFlags flags)

wordWrap : bool

Diese Eigenschaft bestimmt den Wortumbruch für das Etikett

Wenn diese Eigenschaft true lautet, wird der Etikettentext bei Wortumbrüchen umbrochen, wo dies erforderlich ist; andernfalls wird er überhaupt nicht umbrochen.

Standardmäßig ist der Wortumbruch deaktiviert.

Zugriffsfunktionen:

bool wordWrap() const
void setWordWrap(bool on)

Siehe auch text.

Dokumentation der Mitgliedsfunktionen

[explicit] QLabel::QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

Konstruiert ein leeres Etikett.

Die Argumente parent und widget flag f werden an den QFrame Konstruktor übergeben.

Siehe auch setAlignment(), setFrameStyle(), und setIndent().

[explicit] QLabel::QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

Konstruiert ein Etikett, das den Text text anzeigt.

Die Argumente parent und Widget-Flag f werden an den Konstruktor QFrame übergeben.

Siehe auch setText(), setAlignment(), setFrameStyle(), und setIndent().

[virtual noexcept] QLabel::~QLabel()

Zerstört das Etikett.

QWidget *QLabel::buddy() const

Gibt den Buddy dieses Etiketts zurück, oder nullptr, wenn kein Buddy gesetzt ist.

Siehe auch setBuddy().

[override virtual protected] void QLabel::changeEvent(QEvent *ev)

Reimplements: QFrame::changeEvent(QEvent *ev).

[slot] void QLabel::clear()

Löscht alle Etiketteninhalte.

[override virtual protected] void QLabel::contextMenuEvent(QContextMenuEvent *ev)

Reimplements: QWidget::contextMenuEvent(QContextMenuEvent *event).

[override virtual protected] bool QLabel::event(QEvent *e)

Reimplements: QFrame::event(QEvent *e).

[override virtual protected] void QLabel::focusInEvent(QFocusEvent *ev)

Reimplements: QWidget::focusInEvent(QFocusEvent *event).

[override virtual protected] bool QLabel::focusNextPrevChild(bool next)

Reimplements: QWidget::focusNextPrevChild(bool next).

[override virtual protected] void QLabel::focusOutEvent(QFocusEvent *ev)

Reimplements: QWidget::focusOutEvent(QFocusEvent *event).

[override virtual] int QLabel::heightForWidth(int w) const

Reimplements: QWidget::heightForWidth(int w) const.

[override virtual protected] void QLabel::keyPressEvent(QKeyEvent *ev)

Reimplements: QWidget::keyPressEvent(QKeyEvent *event).

[signal] void QLabel::linkActivated(const QString &link)

Dieses Signal wird ausgelöst, wenn der Benutzer auf einen Link klickt. Die URL, auf die der Anker verweist, wird in link übergeben.

Siehe auch linkHovered().

[signal] void QLabel::linkHovered(const QString &link)

Dieses Signal wird ausgegeben, wenn der Benutzer den Mauszeiger über einen Link bewegt. Die URL, auf die der Anker verweist, wird in link übergeben.

Siehe auch linkActivated().

[override virtual] QSize QLabel::minimumSizeHint() const

Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QWidget::minimumSizeHint.

[override virtual protected] void QLabel::mouseMoveEvent(QMouseEvent *ev)

Reimplements: QWidget::mouseMoveEvent(QMouseEvent *event).

[override virtual protected] void QLabel::mousePressEvent(QMouseEvent *ev)

Reimplements: QWidget::mousePressEvent(QMouseEvent *event).

[override virtual protected] void QLabel::mouseReleaseEvent(QMouseEvent *ev)

Reimplements: QWidget::mouseReleaseEvent(QMouseEvent *event).

QMovie *QLabel::movie() const

Gibt einen Zeiger auf den Film des Etiketts zurück, oder nullptr, wenn kein Film gesetzt wurde.

Siehe auch setMovie().

[override virtual protected] void QLabel::paintEvent(QPaintEvent *)

Reimplements: QFrame::paintEvent(QPaintEvent *).

[since 6.0] QPicture QLabel::picture() const

Gibt das Bild des Labels zurück.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch setPicture().

[since 6.1] QTextDocument::ResourceProvider QLabel::resourceProvider() const

Gibt den Ressourcenanbieter für den Rich Text dieses Labels zurück.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch setResourceProvider().

int QLabel::selectionStart() const

selectionStart() gibt den Index des ersten ausgewählten Zeichens in der Beschriftung zurück oder -1, wenn kein Text ausgewählt ist.

Hinweis: Der textInteractionFlags -Satz auf dem Label muss entweder TextSelectableByMouse oder TextSelectableByKeyboard enthalten.

Siehe auch selectedText().

void QLabel::setBuddy(QWidget *buddy)

Setzt den Buddy dieses Etiketts auf buddy.

Wenn der Benutzer die durch dieses Label angegebene Tastenkombination drückt, wird der Tastaturfokus auf das Buddy-Widget des Labels übertragen.

Der Buddy-Mechanismus ist nur für QLabels verfügbar, die Text enthalten, in dem ein Zeichen mit einem kaufmännischen Und-Zeichen (&) vorangestellt ist. Dieses Zeichen wird als Schnelltaste festgelegt. Weitere Informationen finden Sie in der Dokumentation QKeySequence::mnemonic() (um ein echtes kaufmännisches Und-Zeichen anzuzeigen, verwenden Sie '&&').

In einem Dialog können Sie beispielsweise zwei Dateneingabe-Widgets und jeweils eine Beschriftung erstellen und das Geometrie-Layout so einrichten, dass sich jede Beschriftung direkt links von ihrem Dateneingabe-Widget (ihrem "Kumpel") befindet:

QLineEdit *nameEdit  = new QLineEdit(this);
QLabel    *nameLabel = new QLabel("&Name:", this);
nameLabel->setBuddy(nameEdit);
QLineEdit *phoneEdit  = new QLineEdit(this);
QLabel    *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);
// (layout setup not shown)

Mit dem obigen Code springt der Fokus auf das Feld Name, wenn der Benutzer Alt+N drückt, und auf das Feld Telefon, wenn der Benutzer Alt+P drückt.

Um einen zuvor gesetzten Buddy wieder zurückzusetzen, rufen Sie diese Funktion mit buddy auf nullptr gesetzt auf.

Siehe auch buddy(), setText(), QShortcut, und setAlignment().

[slot] void QLabel::setMovie(QMovie *movie)

Setzt den Inhalt des Etiketts auf movie. Alle vorherigen Inhalte werden gelöscht. Das Etikett übernimmt NICHT das Eigentum an dem Film.

Die Verknüpfung zum Buddy, falls vorhanden, wird deaktiviert.

Siehe auch movie() und setBuddy().

[slot] void QLabel::setNum(int num)

Setzt den Inhalt des Etiketts auf reinen Text, der die textuelle Darstellung der ganzen Zahl num enthält. Jeder vorherige Inhalt wird gelöscht. Führt nichts aus, wenn die String-Darstellung der Ganzzahl mit dem aktuellen Inhalt des Etiketts identisch ist.

Die Buddy-Verknüpfung, falls vorhanden, wird deaktiviert.

Siehe auch setText(), QString::setNum(), und setBuddy().

[slot] void QLabel::setNum(double num)

Dies ist eine überladene Funktion.

Setzt den Inhalt des Labels auf reinen Text, der die textuelle Darstellung von double num enthält. Jeder vorherige Inhalt wird gelöscht. Führt nichts aus, wenn die String-Darstellung von double mit dem aktuellen Inhalt des Etiketts identisch ist.

Die Buddy-Verknüpfung, falls vorhanden, wird deaktiviert.

Siehe auch setText(), QString::setNum(), und setBuddy().

[slot] void QLabel::setPicture(const QPicture &picture)

Setzt den Inhalt des Etiketts auf picture. Alle vorherigen Inhalte werden gelöscht.

Die Verknüpfung zum Buddy, falls vorhanden, wird deaktiviert.

Siehe auch picture() und setBuddy().

[since 6.1] void QLabel::setResourceProvider(const QTextDocument::ResourceProvider &provider)

Legt die provider von Ressourcen für Rich Text dieses Etiketts fest.

Hinweis: Das Label übernimmt nicht das Eigentum an der provider.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch resourceProvider().

void QLabel::setSelection(int start, int length)

Wählt Text ab Position start und für length Zeichen aus.

Hinweis: Der Satz textInteractionFlags auf dem Etikett muss entweder TextSelectableByMouse oder TextSelectableByKeyboard enthalten.

Siehe auch selectedText().

[override virtual] QSize QLabel::sizeHint() const

Reimplements: QFrame::sizeHint() const.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.