前言:記錄開發過程中QLabel的使用,持續更新ing...
開發平臺:Win10 64位
開發環境:Qt Creator 13.0.0?
構建環境:Qt 5.15.2 +MSVC2019 64位
一、基本屬性
技巧:對于Qlabel這類控件的屬性有一些共同的特點,那就是set+xxx是設置這個控件的對應的屬性,如果去掉set,那就是獲取這個控件的對應屬性。
基本功能:提供文本或圖像顯示,外觀可以通過多種方式進行配置,QLabel 可以包含以下任何內容類型:
內容 | 設置 |
---|---|
純文本 | 通過setText()方法傳遞一個QString |
富文本 | 通過setText()方法傳遞一個富文本QString |
像素圖 | 通過?setPixmap()設置 一個?QPixmap?,用于顯示圖像 |
電影 | 通過setMovie來設置一個QMovie類型的多媒體,用于顯示動畫特效 |
數字 | 通過?setNum()屬性顯示int?或 double類型數據 |
空 | 啥也不顯示 |
#include <QApplication>
#include <QLabel>
#include <QPixmap>int main(int argc, char *argv[]) {QApplication app(argc, argv);QLabel label;label.setText("Hello, World!"); // 設置文本QPixmap pixmap("image.png"); // 加載圖像label.setPixmap(pixmap); // 設置圖像label.setAlignment(Qt::AlignCenter); // 設置對齊方式label.show();return app.exec();
}
二、功能測試
2.1 移動QLabel位置
使用QLabel的move()方法和x(),y()屬性。
通過定時器去改變label的y坐標軸,使其上下移動。
QTimer *timer=new QTimer;timer->start(10);connect(timer,&QTimer::timeout,[=]{//ui->label->move(ui->label->x(),yValue++);if(!direction){ui->label->move(ui->label->x(),yValue++);if(yValue==this->y())direction=true;}else {ui->label->move(ui->label->x(),yValue--);if(yValue==0)direction=false;}});
2.2 設置全部QLabel樣式
初始化時想要去掉QLabel的央視,在特定條件下再對QLabel進行設置
QList<QLabel *> LBlist = ui->centralwidget->findChildren<QLabel*>();for(auto lb :LBlist){lb->setStyleSheet("");}
?通過findChildren的泛型方法獲取全部的QLabel,然后循環對其樣式進行設置。
有時候我們想在初始化的時候對個別的QLabel不進行設置,可以在for循環中去排除
QList<QLabel *> LBlist = ui->centralwidget->findChildren<QLabel*>();for(auto lb :LBlist){ if(lb->objectName()!="label"){lb->setStyleSheet("");}}
?先判斷QLabel的objectName()屬性,就是對象名字,通過名字排除。
三、參考文獻?
3.1 Qt——QLabel控件常見的屬性、方法和信號-CSDN博客
3.2(三)Qlabel顯示圖片_qlabel加載圖片-CSDN博客