Qt入门之常用qt控件认知之QLabel
? ?QLabel是Qt最為基本和常用的一個控件。其定義包含在<QLabel>中。
? ?1、整體簡介(QLabel功能):QLabel的功能就是顯示文字或者圖片,沒有用戶交互功能,這也就是經常不位QLabel控件設置焦點的原因,QLabel外觀可以通過不同的方式進行設置,同時有一個非常重要的功能,其可以作為另外一個控件的焦點助記鍵,即設置QLabel快捷鍵則將焦點跳到指定的控件,如QLineEdit,此控件通過QLabel的setBuddy函數設置。
? ?QLabel可以使用的類型及設置方法:
? ?純出文本或者富文本 使用 setText(QString)
? ?一個pximap圖片 ?使用setPixmap(QPixmap)
? ?一個movie ? ?使用setMovie(QMovie)
? ?一個int或者double數字 則使用setNumber(int、number),會將數字轉換為純文本字符
? ?清空內容則使用clear。
? ?需要注意的是,使用了任何上述的一種方式,之前的內容都會被clear掉。
? ?默認Qlabel顯示內容適合left-alignment 和vcenter-alignment,自適應擴展的。
? ?2、調整Qlabel外觀(QLabel屬性設置)
? ?1)調整內容的顯示位置
? ?alignment,是Qt::Alignment,通過setAlignment(Qt::Alignment)設置alignment()獲取屬性值,內容顯示位置,常見有上下左右及上下居中和左右居中
? ?intent,內容縮進像素,使用inten()獲取,setIntent(int pix)設置,這里需要提醒一下,如果intent為負數,默認為-1或者沒有設置,則此值是根據一下規則計算出來的:
? ? 如果frameWidth()是0,則intent是0,如果大于0,則intent值是字符‘x’在當前控件所使用對應的字體font()占用寬度的一般。
? ?2)調整QLabel控件的邊界margin,則用setMargin(int)
? ?3)文本內容可以設置其是否根據換行進行換行及bool wordWrap,setWordWrap進行設置。需要注意的是換行,是根據輸出內容之間的空白符,如果一個字符串中沒有空格等字符,即字符長度是為一個單詞則會出現這樣的問題--沒有自動進行換行,這正是word之意
? ?4)scaledContents bool:縮放內容,此屬性如果在顯示的是一個圖片的時候是否將整個圖片填充到整個可用的區域,使用setScaledContents(bool)進行設置
? ?5)text屬性,是QLabel的文本內容,通過setText(QString)設置,text()獲取,如果沒有則獲取位空,同樣設置了時會將之前的內容清空。
? ? ? pixmap屬性,存儲QLabel設置為圖片的屬性。pixmap獲取,setPixmap設置。如果沒有則獲取位空,同樣設置了時會將之前的內容清空。
? ?6)textFormat:QLabel顯示文本的類型,setTtextFormat(Qt::TextFormat)進行設置,其取值:
? ? ? ?Qt::PlainText ? 0 ? 純文本 ?
? ? ? ?Qt::RichText ? 1 ? 富文本
? ? ? ?Qt::AutoText ? 2 ? Qt::mightBeRichText() 返回是Qt::RichText則為1,否則為0
? ? ? ?7)hasSelectedText : const bool是否選擇文本內容,也在QLabel內容為text時使用
? ? ? ? hasSelectedText()獲取是否有,selectedText()返回選擇的字符,可以設定字符使用void setSelection(int start,int length)將起始位置和長度的字符。
textInteractionFlags:表示QLabel如何交互,當顯示內容為text的時候。
如果包含 Qt::LinksAccessibleByKeyboard 焦點策略被設置為 Qt::StrongFocus. 如果是 Qt::TextSelectableByKeyboard 則設置為 Qt::ClickFocus.默認是 Qt::LinksAccessibleByMouse.
如果需要通過鼠標鍵盤選取文本,則此鼠標必須是TextSelectableByMouse 或則TextSelectableByKeyboard.
? ? ? ?3、QLabel交互功能:設置QLabel的助記符及buddy(伙伴),即使用QLabel設置快捷鍵,會在快捷鍵后將焦點設置到其buddy之上。設是用到了QLabel交互控件的功能。此buddy可以是任何一個widget控件。使用setBuddy(QWidget *)設置,其QLabel必須是text內容,并且使用‘&’符號設置了助記字符,如
? ?4、QLabel其他常使用的接口
QLabel::QLabel ( QWidget * parent = 0, Qt::WindowFlagsf = 0 )
創建一個空的QLabel
QLabel::QLabel ( const QString & text, QWidget * parent = 0, Qt::WindowFlagsf = 0 )
創建以一個QLabel,顯示內容為文本
void clear() [slot]清空顯示內容
QWidget *buddy()返回其buddy對象,如果有,否則返回0,通過setBuddy設置
QMovie *movie()返回QLabel的movie內容,沒有則返回0,通過setMovie(QMovie)設置的
QPicture *picture()返回QLabel的picture內容,沒有返回0,通過setPicture(QPicture)設置的
int ?selectionStart()返回選擇字符的開始位置,沒有則返回-1.通過void setSelection(int start,int length)設置選擇對應文本的其實位置和長度
總結:QLabel可顯示文件及圖片內容。每次設置不同的內容,會調用clear清空上次的內容。
其次,QLabel不需要交互功能,唯一用到的交互功能是設置助記符,將快捷鍵指定到其buddy控件
根據QLabel內容進行屬性的設置和獲取,如顯示文本時可以設置wordWrap,圖片是可以設置scaledContets等
?QLabel功能簡單,但非常有用,以此作為理解記錄,更好的使用。
本文出自 “zhouhb” 博客,請務必保留此出處http://hongbin0720.blog.51cto.com/3305400/1230430
轉載于:https://www.cnblogs.com/raiven2008/p/4260886.html
總結
以上是生活随笔為你收集整理的Qt入门之常用qt控件认知之QLabel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS取得绝对路径
- 下一篇: Supporting Multiple