QLabel 類

QLabel 小部件提供文本或圖像顯示。 更多...

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

特性

公共函數

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
QPicture picture () const
QPixmap pixmap () const
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 )
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

重實現公共函數

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

公共槽

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 &)

信號

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

重實現保護函數

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

詳細描述

QLabel 用於顯示文本或圖像。不提供用戶交互功能。標簽的視覺外觀可以按多種方式配置,且它可以用於為另一 Widget 指定聚焦符鍵。

QLabel 可以包含任何下列內容類型:

內容 設置
純文本 傳遞 QString to setText ().
富文本 傳遞 QString 包含富文本到 setText ().
像素圖 傳遞 QPixmap to setPixmap ().
影片 傳遞 QMovie to setMovie ().
數字 傳遞 int 或 double to setNum (),將數字轉換為純文本。
什麼都沒有 如同空純文本。這是默認。設置通過 clear ().

警告: 當傳遞 QString 到構造函數或調用 setText (),確保淨化輸入,因為 QLabel 會試著猜測它是將文本顯示為純文本還是富文本 (HTML 4 標記子集)。可能想要調用 setTextFormat () 明確,如:若期望按純文本格式卻無法控製文本源 (例如:當顯示從 Web 加載的數據時)。

當使用這些函數中的任一改變內容時,任何先前內容被清零。

默認情況下,標簽顯示 左對齊,垂直居中 文本和圖像,要顯示文本中的任何 Tab 都會 自動展開 。不管怎樣,可以按幾種方式調節和微調 QLabel 的外觀。

可以微調 QLabel 小部件區域內的內容定位采用 setAlignment () 和 setIndent ()。文本內容也可以沿單詞邊界自動換行采用 setWordWrap ()。例如,此代碼在右下角設置具有兩行文本的凹陷麵闆 (兩行文本與標簽右側齊平):

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

QLabel 特性和函數繼承自 QFrame 還可以用於指定要用於任何給定標簽的 Widget 框架。

經常使用 QLabel 作為交互 Widget 標簽。為此,使用 QLabel 為添加助記符提供瞭有用機製 (見 QKeySequence ) 將鍵盤聚焦設置到另一 Widget (稱為 QLabel Buddy 好友)。例如:

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

在此範例中,將鍵盤聚焦轉移給標簽好友 ( QLineEdit ) 當用戶按下 Alt+P 鍵時。若好友是按鈕 (繼承自 QAbstractButton ),觸發助記符將模擬按鈕點擊。

另請參閱 QLineEdit , QTextEdit , QPixmap ,和 QMovie .

特性文檔編製

alignment : Qt::Alignment

此特性保持標簽內容的對齊方式

默認情況下,標簽內容左對齊且垂直居中。

訪問函數:

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

另請參閱 text .

[read-only] hasSelectedText : const bool

此特性保持是否有選中任何文本。

hasSelectedText() 返迴 true 若用戶有選中部分或全部文本;否則返迴 false .

默認情況下,此特性為 false .

注意: The textInteractionFlags 設置標簽需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。

訪問函數:

bool hasSelectedText () const

另請參閱 selectedText ().

indent : int

此特性保持標簽的文本縮進 (以像素為單位)

若標簽顯示文本,縮進被應用到左邊緣,若 alignment () 是 Qt::AlignLeft ,到右邊緣若 alignment () 是 Qt::AlignRight ,到上邊緣若 alignment () 是 Qt::AlignTop ,和到下邊緣若 alignment () 是 Qt::AlignBottom .

若縮進為負數或未設置縮進,標簽將計算有效縮進,如下所示:若 frameWidth () 為 0,有效縮進變為 0。若 frameWidth () 大於 0,有效縮進變為小部件 x 字符寬度的一半相對當前 font ().

默認情況下,縮進為 -1,意味著有效縮進按上述方式計算。

訪問函數:

int indent () const
void setIndent (int)

另請參閱 alignment , margin , frameWidth (),和 font ().

margin : int

此特性保存邊距的寬度

邊距是框架最內像素和內容最外像素之間的距離。

默認邊距為 0。

訪問函數:

int margin () const
void setMargin (int)

另請參閱 indent .

指定是否 QLabel 應自動打開鏈接使用 QDesktopServices::openUrl () 而不是發射 linkActivated () 信號。

注意: The textInteractionFlags 在標簽上設置需要包括 LinksAccessibleByMouse 或 LinksAccessibleByKeyboard。

默認值為 false。

訪問函數:

bool openExternalLinks () const
void setOpenExternalLinks (bool open )

另請參閱 textInteractionFlags ().

pixmap : QPixmap

此特性保持標簽的像素圖。

設置像素圖會清零任何之前內容。好友快捷方式 (若有的話) 被禁用。

訪問函數:

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

scaledContents : bool

此特性保持標簽是否比例縮放其內容,以填充所有可用空間。

當啓用且標簽展示像素圖時,它將比例縮放像素圖以填充可用空間。

此特性默認為 false。

訪問函數:

bool hasScaledContents () const
void setScaledContents (bool)

[read-only] selectedText : const QString

此特性保持選中文本

若沒有選中文本,此特性的值為空字符串。

默認情況下,此特性包含空字符串。

注意: The textInteractionFlags 設置標簽需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。

訪問函數:

QString selectedText () const

另請參閱 hasSelectedText ().

text : QString

此特性保持標簽的文本

若沒有設置文本,這會返迴空字符串。設置文本將清零任何先前內容。

將把文本解釋成純文本 (或富文本),從屬文本格式設定;見 setTextFormat ()。默認設置為 Qt::AutoText ;即 QLabel 將試著自動檢測文本集格式。見 支持的 HTML 子集 對於富文本的定義。

若有設置好友,從新文本更新好友助記符鍵。

注意, QLabel 非常適閤顯示小富文本文檔,譬如,從標簽調色闆和字體特性獲取文檔具體設定 (字體、文本顔色、鏈接顔色) 的小文檔。對於大文檔,使用 QTextEdit 以隻讀方式代替。 QTextEdit 還能提供滾動條,當有必要時。

注意: 此函數啓用鼠標追蹤若 text 包含富文本。

訪問函數:

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

另請參閱 setTextFormat (), setBuddy (),和 alignment .

textFormat : Qt::TextFormat

此特性保持標簽的文本格式

見 Qt::TextFormat 枚舉瞭解可能選項的解釋。

默認格式為 Qt::AutoText .

訪問函數:

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

另請參閱 text ().

textInteractionFlags : Qt::TextInteractionFlags

指定標簽應如何與用戶輸入交互,若它顯示文本。

若標誌包含 Qt::LinksAccessibleByKeyboard 聚焦策略還被自動設為 Qt::StrongFocus 。若 Qt::TextSelectableByKeyboard 有設置那麼聚焦策略被設為 Qt::ClickFocus .

默認值為 Qt::LinksAccessibleByMouse .

訪問函數:

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

wordWrap : bool

此特性保持標簽的自動換行策略

若此特性為 true 那麼有必要在單詞分割處換行標簽文本;否則,根本不換行。

默認情況下,自動換行是禁用的。

訪問函數:

bool wordWrap () const
void setWordWrap (bool on )

另請參閱 text .

成員函數文檔編製

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

構造空標簽。

The parent 和 Widget 標誌 f ,自變量被傳遞給 QFrame 構造函數。

另請參閱 setAlignment (), setFrameStyle (),和 setIndent ().

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

構造標簽顯示文本 text .

The parent 和 Widget 標誌 f ,自變量被傳遞給 QFrame 構造函數。

另請參閱 setText (), setAlignment (), setFrameStyle (),和 setIndent ().

[虛擬] QLabel:: ~QLabel ()

銷毀標簽。

QWidget *QLabel:: buddy () const

返迴此標簽的好友,或 nullptr 若目前未設置好友。

另請參閱 setBuddy ().

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

重實現: QFrame::changeEvent (QEvent *ev).

[slot] void QLabel:: clear ()

清零任何標簽內容。

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

重實現: QWidget::contextMenuEvent (QContextMenuEvent *event).

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

重實現: QFrame::event (QEvent *e).

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

重實現: QWidget::focusInEvent (QFocusEvent *event).

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

重實現: QWidget::focusNextPrevChild (bool next).

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

重實現: QWidget::focusOutEvent (QFocusEvent *event).

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

重實現: QWidget::heightForWidth(int w) const .

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

重實現: QWidget::keyPressEvent (QKeyEvent *event).

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

此信號發射,當用戶點擊鏈接時。通過錨點引用的 URL 被傳入 link .

另請參閱 linkHovered ().

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

此信號發射,當用戶懸停在鏈接之上時。通過錨點引用的 URL 被傳入 link .

另請參閱 linkActivated ().

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

重實現訪問函數為特性: QWidget::minimumSizeHint .

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

重實現: QWidget::mouseMoveEvent (QMouseEvent *event).

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

重實現: QWidget::mousePressEvent (QMouseEvent *event).

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

重實現: QWidget::mouseReleaseEvent (QMouseEvent *event).

QMovie *QLabel:: movie () const

返迴指嚮標簽影片的指針,或 nullptr 若沒有設置影片。

另請參閱 setMovie ().

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

重實現: QFrame::paintEvent (QPaintEvent *).

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

返迴標簽的圖片。

該函數在 Qt 6.0 引入。

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

Returns the resource provider for rich text of this label.

This function was introduced in Qt 6.1.

另請參閱 setResourceProvider ().

int QLabel:: selectionStart () const

selectionStart() 返迴標簽第 1 選中字符的索引,或 -1 若未選中文本。

注意: The textInteractionFlags 設置標簽需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。

另請參閱 selectedText ().

void QLabel:: setBuddy ( QWidget * buddy )

將此標簽的好友設為 buddy .

當用戶按下此標簽指示的快捷鍵時,將轉移鍵盤聚焦到標簽的好友 Widget。

好友機製隻可用於包含文本的某個字符以 & 和號作前綴的 QLabel。此字符被設為快捷鍵。見 QKeySequence::mnemonic () 文檔編製瞭解細節 (要顯示實際和號,使用 &&)。

可以在對話框中創建 2 數據輸入 Widget 並為每個 Widget 創建標簽,然後設置幾何布局,使各標簽位於其數據輸入 Widget (其好友) 左側,例如:

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)
					

采用以上代碼,聚焦跳轉到 Name 字段當用戶按下 Alt+N 時,和跳轉到 Phone 字段當用戶按 Alt+P 時。

要取消先前設置的好友,調用此函數采用 buddy 設為 nullptr。

另請參閱 buddy (), setText (), QShortcut ,和 setAlignment ().

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

將標簽內容設為 movie 。清零任何先前內容。標簽未擁有影片的所有權。

好友快捷方式 (若有的話) 被禁用。

另請參閱 movie () 和 setBuddy ().

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

使設置標簽內容的純文本包含正文錶示的整數 num 。清零任何先前內容。什麼都不做,若整數的字符串錶示如同標簽的當前內容。

好友快捷方式 (若有的話) 被禁用。

另請參閱 setText (), QString::setNum (),和 setBuddy ().

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

這是重載函數。

使設置標簽內容的純文本包含正文錶示的雙精度 num 。清零任何先前內容。什麼都不做,若雙精度的字符串錶示如同標簽的當前內容。

好友快捷方式 (若有的話) 被禁用。

另請參閱 setText (), QString::setNum (),和 setBuddy ().

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

將標簽內容設為 picture 。清零任何先前內容。

好友快捷方式 (若有的話) 被禁用。

另請參閱 picture () 和 setBuddy ().

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

設置 provider of resources for rich text of this label.

注意: The label does not 擁有所有權對於 provider .

This function was introduced in Qt 6.1.

另請參閱 resourceProvider ().

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

選擇文本從位置 start 和對於 length 字符。

注意: The textInteractionFlags 設置標簽需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。

另請參閱 selectedText ().

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

重實現: QFrame::sizeHint() const .