1. 程式人生 > >Qt入門之常用qt控制元件認知之QLabel

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進行設定。

   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功能簡單,但非常有用,以此作為理解記錄,更好的使用。