QLabel

ui->qrcode->setPixmap(QPixmap(":/pic/pay_success.png"));

在項目裏看到這一句代碼qrcode是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進行設置。

   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等


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章