QLabel
是Qt中用于顯示文本或圖像的控件,屬于Qt Widgets模塊。它是展示靜態內容的理想選擇,支持富文本格式,使得文本可以包含不同的字體、顏色和鏈接。QLabel
也可以用來顯示圖像,包括動態圖像。此外,它還支持文本和圖像的對齊方式設置。
核心功能
顯示文本
QLabel
能夠顯示普通文本、富文本或者翻譯后的文本。它通過setText()
方法來設置文本內容,如果文本包含富文本格式,則會自動識別并渲染。
顯示圖像
通過setPixmap()
方法,QLabel
可以顯示QPixmap
圖像。這使得它能夠展示本地的圖片文件或者程序中動態生成的圖像。
文本和圖像的對齊
QLabel
提供了setAlignment()
方法,允許開發者設置文本或圖像在控件內的對齊方式,如左對齊、居中對齊或右對齊。
交互性
雖然QLabel
主要用于顯示靜態內容,但它也可以被配置為響應用戶的交互。例如,通過設置setOpenExternalLinks(true)
,QLabel
中的超鏈接可以被點擊并在外部瀏覽器中打開。
主要函數接口
構造函數
-
QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
:創建一個新的QLabel
實例,可以指定父控件和窗口標志。
設置內容
-
void setText(const QString &text)
:設置要顯示的文本。 -
void setPixmap(const QPixmap &pixmap)
:設置要顯示的圖像。 -
QLabel *label = new QLabel(this);
label->setText("Hello,?World!");
設置對齊
-
void setAlignment(Qt::Alignment alignment)
:設置內容的對齊方式。 -
label->setAlignment(Qt::AlignCenter);
設置交互性
-
void setOpenExternalLinks(bool open)
:設置是否允許打開外部鏈接。 -
void setWordWrap(bool on)
:設置是否對長文本進行自動換行。 -
label->setOpenExternalLinks(true);
其他常用功能
-
QString text() const
:獲取當前顯示的文本。 -
QPixmap pixmap() const
:獲取當前顯示的圖像。 -
void clear()
:清除QLabel
的內容,包括文本和圖像。
應用場景示例
顯示富文本
QLabel *richTextLabel = new QLabel(this);
richTextLabel->setText("<h2>Title</h2><p>This?is?<b>bold</b>?paragraph.</p>");
顯示圖片
QLabel *imageLabel = new QLabel(this);
QPixmap pixmap("path/to/image.png");
imageLabel->setPixmap(pixmap);
結論
QLabel
是Qt中非常基礎且強大的控件,適用于多種場景,包括顯示提示信息、圖像、或作為界面的一部分顯示靜態文本。通過上述的屬性和方法,QLabel
可以靈活地被定制以滿足不同的需求,是Qt GUI開發中不可或缺的組件。
?