QLabel 小部件提供文本或圖像顯示。 更多...
| 頭: | #include <QLabel> |
| qmake: | QT += widgets |
| 繼承: | QFrame |
|
|
| QLabel (const QString & text , QWidget * parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()) | |
| QLabel (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 ( Qt::ReturnByValueConstant ) const |
| QPixmap | pixmap ( Qt::ReturnByValueConstant ) 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 | 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 (double num ) |
| void | setNum (int 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 ,和 GUI 設計手冊:標簽 .
此特性保持標簽內容的對齊方式
默認情況下,標簽內容左對齊且垂直居中。
訪問函數:
| Qt::Alignment | alignment () const |
| void | setAlignment ( Qt::Alignment ) |
另請參閱 text .
此特性保持是否有選中任何文本。
hasSelectedText() 返迴
true
若用戶有選中部分或全部文本;否則返迴
false
.
默認情況下,此特性為
false
.
注意: The textInteractionFlags 設置標簽需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。
該特性在 Qt 4.7 引入。
訪問函數:
| bool | hasSelectedText () const |
另請參閱 selectedText ().
此特性保持標簽的文本縮進 (以像素為單位)
若標簽顯示文本,縮進被應用到左邊緣,若 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 ().
此特性保存邊距的寬度
邊距是框架最內像素和內容最外像素之間的距離。
默認邊距為 0。
訪問函數:
| int | margin () const |
| void | setMargin ( int ) |
另請參閱 indent .
指定是否 QLabel 應自動打開鏈接使用 QDesktopServices::openUrl () 而不是發射 linkActivated () 信號。
注意: The textInteractionFlags 在標簽上設置需要包括 LinksAccessibleByMouse 或 LinksAccessibleByKeyboard。
默認值為 false。
該特性在 Qt 4.2 引入。
訪問函數:
| bool | openExternalLinks () const |
| void | setOpenExternalLinks (bool open ) |
另請參閱 textInteractionFlags ().
此特性保持標簽的像素圖。
先前,Qt 提供版本的
pixmap()
按指針返迴像素圖。該版本現被棄用。為與舊代碼保持兼容,可以明確區分按指針函數和按值函數:
const QPixmap *pixmapPtr = label->pixmap(); QPixmap pixmapVal = label->pixmap(Qt::ReturnByValue);
若禁用棄用版本,使用
QT_DISABLE_DEPRECATED_BEFORE
宏,那麼可以省略
Qt::ReturnByValue
如下所示:
QPixmap pixmapVal = label->pixmap();
若未設置像素圖,棄用 Getter 函數將返迴
nullptr
.
設置像素圖會清零任何之前內容。好友快捷方式 (若有的話) 被禁用。
訪問函數:
| QPixmap | pixmap ( Qt::ReturnByValueConstant ) const |
| void | setPixmap ( const QPixmap & ) |
此特性保持標簽是否比例縮放其內容,以填充所有可用空間。
當啓用且標簽展示像素圖時,它將比例縮放像素圖以填充可用空間。
此特性默認為 false。
訪問函數:
| bool | hasScaledContents () const |
| void | setScaledContents ( bool ) |
此特性保持選中文本
若沒有選中文本,此特性的值為空字符串。
默認情況下,此特性包含空字符串。
注意: The textInteractionFlags 設置標簽需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。
該特性在 Qt 4.7 引入。
訪問函數:
| QString | selectedText () const |
另請參閱 hasSelectedText ().
此特性保持標簽的文本
若沒有設置文本,這會返迴空字符串。設置文本將清零任何先前內容。
將把文本解釋成純文本 (或富文本),從屬文本格式設定;見 setTextFormat ()。默認設置為 Qt::AutoText ;即 QLabel 將試著自動檢測文本集格式。見 支持的 HTML 子集 對於富文本的定義。
若有設置好友,從新文本更新好友助記符鍵。
注意, QLabel 非常適閤顯示小富文本文檔,譬如,從標簽調色闆和字體特性獲取文檔具體設定 (字體、文本顔色、鏈接顔色) 的小文檔。對於大文檔,使用 QTextEdit 以隻讀方式代替。 QTextEdit 還能提供滾動條,當有必要時。
注意: 此函數啓用鼠標追蹤若 text 包含富文本。
訪問函數:
| QString | text () const |
| void | setText ( const QString & ) |
另請參閱 setTextFormat (), setBuddy (),和 alignment .
此特性保持標簽的文本格式
見 Qt::TextFormat 枚舉瞭解可能選項的解釋。
默認格式為 Qt::AutoText .
訪問函數:
| Qt::TextFormat | textFormat () const |
| void | setTextFormat ( Qt::TextFormat ) |
另請參閱 text ().
指定標簽應如何與用戶輸入交互,若它顯示文本。
若標誌包含 Qt::LinksAccessibleByKeyboard 聚焦策略還被自動設為 Qt::StrongFocus 。若 Qt::TextSelectableByKeyboard 有設置那麼聚焦策略被設為 Qt::ClickFocus .
默認值為 Qt::LinksAccessibleByMouse .
該特性在 Qt 4.2 引入。
訪問函數:
| Qt::TextInteractionFlags | textInteractionFlags () const |
| void | setTextInteractionFlags (Qt::TextInteractionFlags flags ) |
此特性保持標簽的自動換行策略
若此特性為
true
那麼有必要在單詞分割處換行標簽文本;否則,根本不換行。
默認情況下,自動換行是禁用的。
訪問函數:
| bool | wordWrap () const |
| void | setWordWrap (bool on ) |
另請參閱 text .
構造標簽顯示文本 text .
The parent 和 Widget 標誌 f ,自變量被傳遞給 QFrame 構造函數。
另請參閱 setText (), setAlignment (), setFrameStyle (),和 setIndent ().
構造空標簽。
The parent 和 Widget 標誌 f ,自變量被傳遞給 QFrame 構造函數。
另請參閱 setAlignment (), setFrameStyle (),和 setIndent ().
[slot]
void
QLabel::
clear
()
清零任何標簽內容。
[signal]
void
QLabel::
linkActivated
(const
QString
&
link
)
此信號發射,當用戶點擊鏈接時。通過錨點引用的 URL 被傳入 link .
該函數在 Qt 4.2 引入。
另請參閱 linkHovered ().
[signal]
void
QLabel::
linkHovered
(const
QString
&
link
)
此信號發射,當用戶懸停在鏈接之上時。通過錨點引用的 URL 被傳入 link .
該函數在 Qt 4.2 引入。
另請參閱 linkActivated ().
[slot]
void
QLabel::
setMovie
(
QMovie
*
movie
)
將標簽內容設為 movie 。清零任何先前內容。標簽未擁有影片的所有權。
好友快捷方式 (若有的話) 被禁用。
[slot]
void
QLabel::
setNum
(
double
num
)
這是重載函數。
使設置標簽內容的純文本包含正文錶示的雙精度 num 。清零任何先前內容。什麼都不做,若雙精度的字符串錶示如同標簽的當前內容。
好友快捷方式 (若有的話) 被禁用。
另請參閱 setText (), QString::setNum (),和 setBuddy ().
[slot]
void
QLabel::
setNum
(
int
num
)
使設置標簽內容的純文本包含正文錶示的整數 num 。清零任何先前內容。什麼都不做,若整數的字符串錶示如同標簽的當前內容。
好友快捷方式 (若有的話) 被禁用。
另請參閱 setText (), QString::setNum (),和 setBuddy ().
[slot]
void
QLabel::
setPicture
(const
QPicture
&
picture
)
將標簽內容設為 picture 。清零任何先前內容。
好友快捷方式 (若有的話) 被禁用。
另請參閱 picture () 和 setBuddy ().
[虛擬]
QLabel::
~QLabel
()
銷毀標簽。
返迴此標簽的好友,或 nullptr 若目前未設置好友。
另請參閱 setBuddy ().
[override virtual protected]
void
QLabel::
changeEvent
(
QEvent
*
ev
)
重實現: QFrame::changeEvent (QEvent *ev).
[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).
[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).
返迴指嚮標簽影片的指針,或 nullptr 若沒有設置影片。
另請參閱 setMovie ().
[override virtual protected]
void
QLabel::
paintEvent
(
QPaintEvent *
)
重實現: QFrame::paintEvent (QPaintEvent *).
返迴標簽的圖片。
先前,Qt 提供版本的
picture()
按指針返迴圖像。該版本現棄用。為與舊代碼保持兼容,可以明確區分按指針函數和按值函數:
const QPicture *picPtr = label->picture(); QPicture picVal = label->picture(Qt::ReturnByValue);
若禁用棄用版本,使用
QT_DISABLE_DEPRECATED_BEFORE
宏,那麼可以省略
Qt::ReturnByValue
如下所示:
QPicture picVal = label->picture();
該函數在 Qt 5.15 引入。
注意: getter 函數對於特性 pixmap .
該函數在 Qt 5.15 引入。
selectionStart() 返迴標簽第 1 選中字符的索引,或 -1 若未選中文本。
注意: The textInteractionFlags 設置標簽需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。
該函數在 Qt 4.7 引入。
另請參閱 selectedText ().
將此標簽的好友設為 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 ().
選擇文本從位置 start 和對於 length 字符。
注意: The textInteractionFlags 設置標簽需要包括 TextSelectableByMouse 或 TextSelectableByKeyboard。
該函數在 Qt 4.7 引入。
另請參閱 selectedText ().
[override virtual]
QSize
QLabel::
sizeHint
() const
重實現: QFrame::sizeHint () const.