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:
Inhalt | Einstellung |
---|---|
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. |
Nichts | Das 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.
openExternalLinks : bool
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.