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(); //獲取屏幕大小
這些是一般的用法,其他的用法可以參考幫助文檔