QLabel的基本方法

QLabel是Qt中最基礎的窗口部件類,一般用它來顯示一個標籤文本,但它也能用來顯示一個圖片或者設置動畫

創建QLabel時,可以設置它的一些特殊屬性,比如:

QLabel* mLabel=new QLabel(0,Qt::SplashScreen|Qt::WindowStaysOnTopHint);  

可以設置QLabel成爲桌面最頂層的顯示部件.第一個參數爲設置父對象,第二個參數是設置特殊的屬性,類型爲Qt::WindowFlags,可以在幫助中查看其它的有趣屬性。任何QWidget及其子類都可以設置這屬性
 

顯示一個照片可以用

QPixmap photo;
photo.load("C:\photo.jpg");
mLabel->setPixmap(photo);

 //當照片大小和QLabel大小不適應時,可以設置
mLabel->setScaledContents(true); //這樣照片會自動適應大小

QLabel可以設置普通文本和富文本,富文本需要掌握一定html的知識

可以通過設置字體讓QLabel應用

QFont font;
font->setFamily("華文楷體");
font.setBold(true);
font.setPointSize(20);
mLabel->setFont(font);

 

設置setAlignment(Qt::AlignCenter)來設置QLabel的對齊方式,對齊方式分爲水平和垂直的左右居中三種方式,

 

還有特殊的水平Qt::AlignJustify,和垂直Qt::AlignBaseline,可以方便的設置Qt::AlignCenter來使水平和垂直都居中

可以通過

setWordWrap(true);

設置自動換行

可以設置爲垂直顯示

QString strText = QStringLiteral("牀前明月光,疑是地上霜。");
mQLabel->setText(strText.split("",Qt::QString::SkipEmptyParts).join("\n"));

QStringLiteral是一種宏,在編譯期生成QString,並且在動態期不會造成損耗,它避免了很多不必要的開銷,對於只讀型QString的創建十分有用。split通過空字符來分隔,因爲沒有匹配的所以它會返回每一個單字符,然後通過給他們加換行達到垂直顯示的目的,QString::SkipEmptyParts指定了不要顯示空的答案

可以設置顯示省略當文本內容超過QLabel的寬度時通過

 QString strText = QStringLiteral("牀前明月光,疑是地上霜,舉頭望明月,低頭思故鄉。");
 QString strElidedText = mLabel->fontMetrics().elidedText(strText, Qt::ElideMiddle, 200, Qt::TextShowMnemonic);

fontMetrics返回QWidget的字體信息,elidedText的第一個參數爲輸入的字符,省略模式,有左右中,字符寬度(以像素爲單位)

QLabel可以用來播放簡短的動畫通過使用

QMovie* movie=new QMovie(...);
mQLabel->setMovie=(movie);

也可以設置顯示數字通過

mQLabel->setNum(520);

可利用QLabel製作彈幕,主要特別的地方有:

 this->setWindowFlags(Qt::FramelessWindowHint|Qt::Tool|Qt::WindowStaysOnTopHint);
               //設置沒有窗體,沒有工具欄,頂部窗體,可用於彈幕製作

 QDesktopWidget desktopWidget=QApplication::desktop(); //獲取桌面設置
 rect=desktopWidget->screenGeometry(); //獲取屏幕大小

 

這些是一般的用法,其他的用法可以參考幫助文檔

 

發佈了47 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章