天天看點

Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

目錄

1.什麼是QLable

2.使用QLabel

2.1設定文本

2.2擷取文本

2.3設定字型

2.4 設定文字顔色

2.5 設定背景顔色

2.6 設定背景圖檔

方法1

 方法2

 方法3

2.7設定自動換行

2.8設定文本對齊方式

1.什麼是QLable

QLabel小部件提供文本或圖像顯示。

QLabel用于顯示文本或圖像。沒有提供使用者互動功能。可以以各種方式配置标簽的可視化外觀,并且可以使用它為另一個小部件指定焦點助記鍵。

QLabel可以包含以下任何一種内容類型:

Content Setting
Plain text 給setText()傳遞一個QString。
Rich text 将包含富文本的QString傳遞給setText()。
A pixmap 将QPixmap傳遞給setPixmap()。
A movie 将QMovie傳遞給setMovie()。
A number 向setNum()傳遞一個int或double值,它将數字轉換為純文字。
Nothing 與空的純文字相同。這是預設值。規定明确的()。
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

2.使用QLabel

2.1設定文本

ui.label->setText("Hello World");
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

2.2擷取文本

qDebug()<<ui.label->text();
           

2.3設定字型

ui.label->setFont(QFont("微軟雅黑",20));
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

2.4 設定文字顔色

ui.label->setStyleSheet("color:rgb(255,0,0)");
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

2.5 設定背景顔色

ui.label->setStyleSheet("background-color:rgb(111,163,190)");
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

2.6 設定背景圖檔

要顯示的圖檔為:

Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

先把它添加到資源檔案中

Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

方法1

ui.label->setPixmap(QPixmap(":/QtWidgetsApplication8/star.jpeg"));
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

 上面的寫法,會導緻圖檔無法全部顯示出來,因為圖檔尺寸很大,label很小。需要用下面這種寫法對圖檔進行縮放後再顯示。

ui.label->setPixmap(QPixmap(":/QtWidgetsApplication8/star.jpeg").scaled(
ui.label->size()));
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

 方法2

ui.label->setStyleSheet("color:white;background-image:url(:/QtWidgetsApplication8/star.jpeg)");
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

 方法3

ui.label->setStyleSheet("color:white;border-image:url(:/QtWidgetsApplication8/star.jpeg)");
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

2.7設定自動換行

ui.label->setText("Hello World!When passing a QString to the constructor or calling setText(),");
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

 可以看到上面文字顯示不全,而且隻能顯示一行。如果需要自動換行,需要用下面的方法:

ui.label->setText("Hello World!When passing a QString to the constructor or calling setText(),");
ui.label->setWordWrap(true);
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

2.8設定文本對齊方式

  ui.label->setAlignment(Qt::AlignCenter);
           
Roson講Qt #2 QLabel1.什麼是QLable2.使用QLabel

水準對齊方式

Constant Value Description
Qt::AlignLeft 0x0001 Aligns with the left edge.
Qt::AlignRight 0x0002 Aligns with the right edge.
Qt::AlignHCenter 0x0004 Centers horizontally in the available space.
Qt::AlignJustify 0x0008 Justifies the text in the available space.

垂直對齊方式

Constant Value Description
Qt::AlignTop 0x0020 Aligns with the top.
Qt::AlignBottom 0x0040 Aligns with the bottom.
Qt::AlignVCenter 0x0080 Centers vertically in the available space.
Qt::AlignBaseline 0x0100 Aligns with the baseline.

Qt::AlignCenter是“AlignVCenter | AlignHCenter”得到的值。表示水準方向和垂直方向都要居中。

垂直對齊方式和水準對齊方式可以用或運算符号來關聯使用,達到同時控制兩個方向對齊方式的目的。

繼續閱讀