Qt 5——常用控件(QLable、QLineEdit、)
文章目錄
- 資源鏈接(工程文件)
- 1 QLabel控件使用
- 顯示文字(普通文本、html)
- 顯示圖片
- 顯示動畫
- 2 QLineEdit
- 設置/獲取內(nèi)容
- 設置顯示模式
- 3 其他控件
- 4 自定義控件
- 其他控件小案例
- TreeWidget
- TableWidget
- Other控件混合
資源鏈接(工程文件)
https://download.csdn.net/download/weixin_45525272/12536068
1 QLabel控件使用
QLabel是我們最常用的控件之一,其功能很強大,我們可以用來顯示文本,圖片和動畫等。
顯示文字(普通文本、html)
通過QLabel類的setText函數(shù)設置顯示的內(nèi)容:
void setText(const QString &)可以顯示普通文本字符串
QLable *label = new QLable; label->setText(“Hello, World!”);可以顯示HTML格式的字符串
比如顯示一個鏈接:
其中setOpenExternalLinks()函數(shù)是用來設置用戶點擊鏈接之后是否自動打開鏈接,如果參數(shù)指定為true則會自動打開。
顯示圖片
可以使用QLabel的成員函數(shù)setPixmap設置圖片
void setPixmap(const QPixmap &) 首先定義QPixmap對象 QPixmap pixmap; 然后加載圖片 pixmap.load(":/Image/boat.jpg"); 最后將圖片設置到QLabel中 QLabel *label = new QLabel; label.setPixmap(pixmap);顯示動畫
可以使用QLabel 的成員函數(shù)setMovie加載動畫,可以播放gif格式的文件
void setMovie(QMovie * movie) 首先定義QMovied對象,并初始化: QMovie *movie = new QMovie(":/Mario.gif"); 播放加載的動畫: movie->start(); 將動畫設置到QLabel中: QLabel *label = new QLabel; label->setMovie(movie);2 QLineEdit
Qt提供的單行文本編輯框。
設置/獲取內(nèi)容
獲取編輯框內(nèi)容使用text(),函數(shù)聲明如下:
QString text() const
設置編輯框內(nèi)容
設置顯示模式
使用QLineEdit類的setEchoMode () 函數(shù)設置文本的顯示模式,函數(shù)聲明:
void setEchoMode(EchoMode mode)
EchoMode是一個枚舉類型,一共定義了四種顯示模式:
- QLineEdit::Normal 模式顯示方式,按照輸入的內(nèi)容顯示。
- QLineEdit::NoEcho 不顯示任何內(nèi)容,此模式下無法看到用戶的輸入。
- QLineEdit::Password 密碼模式,輸入的字符會根據(jù)平臺轉換為特殊字符。
- QLineEdit::PasswordEchoOnEdit 編輯時顯示字符否則顯示字符作為密碼。
另外,我們再使用QLineEdit顯示文本的時候,希望在左側留出一段空白的區(qū)域,那么,就可以使用QLineEdit給我們提供的setTextMargins函數(shù):
void setTextMargins(int left, int top, int right, int bottom)用此函數(shù)可以指定顯示的文本與輸入框上下左右邊界的間隔的像素數(shù)。
3 其他控件
Qt中控件的使用方法可參考Qt提供的幫助文檔。
4 自定義控件
在搭建Qt窗口界面的時候,在一個項目中很多窗口,或者是窗口中的某個模塊會被經(jīng)常性的重復使用。一般遇到這種情況我們都會將這個窗口或者模塊拿出來做成一個獨立的窗口類,以備以后重復使用。
在使用Qt的ui文件搭建界面的時候,工具欄欄中只為我們提供了標準的窗口控件,如果我們想使用自定義控件怎么辦?
例如:我們從QWidget派生出一個類SmallWidget,實現(xiàn)了一個自定窗口,來實現(xiàn)一個簡單的功能
那么這個SmallWidget可以作為獨立的窗口顯示,也可以作為一個控件來使用:
打開Qt的.ui文件,因為SmallWidget是派生自Qwidget類,所以需要在ui文件中先放入一個QWidget控件, 然后再上邊鼠標右鍵
彈出提升窗口部件對話框
添加要提升的類的名字,然后選擇 添加
添加之后,類名會顯示到上邊的列表框中,然后單擊提升按鈕,完成操作.
我們可以看到, 這個窗口對應的類從原來的QWidget變成了SmallWidget
再次運行程序,這個widget_3中就能顯示出我們自定義的窗口了.
其他控件小案例
TreeWidget
cpp:
TableWidget
#include "widget.h" #include "ui_widget.h" #include <QMessageBox>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);//QTableWidget控件使用//告訴控件 一共有多少列QStringList list;list << "姓名"<< "性別"<< "年齡";ui->tableWidget->setColumnCount(list.size());//設置水平頭ui->tableWidget->setHorizontalHeaderLabels(list);//設置行數(shù)ui->tableWidget->setRowCount(5);//設置正文//ui->tableWidget->setItem(0,0,new QTableWidgetItem("亞瑟"));//準備數(shù)據(jù)QStringList nameList;nameList << "亞瑟"<< "妲己"<< "安琪拉"<< "東皇太一"<< "李白";QList<QString> sexList;sexList << "男" << "女"<< "女"<< "男"<< "男";for(int i = 0 ; i < 5;i++){int col = 0;ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));//添加性別ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList.at(i)));//添加年齡//int 轉 QString numberui->tableWidget->setItem(i,col++,new QTableWidgetItem( QString::number(i+18)));}//點擊按鈕 添加趙云connect(ui->addBtn,&QPushButton::clicked,[=](){//先判斷有沒有趙云,有不添加,沒有才添加bool isEmpty = ui->tableWidget->findItems("趙云",Qt::MatchExactly).empty();if(isEmpty){ui->tableWidget->insertRow(0);ui->tableWidget->setItem(0,0,new QTableWidgetItem("趙云"));ui->tableWidget->setItem(0,1,new QTableWidgetItem("男"));ui->tableWidget->setItem(0,2,new QTableWidgetItem( QString::number(20)));}else{QMessageBox::warning(this,"警告!","趙云有了!");}});//點擊按鈕 刪除趙云connect(ui->delBtn,&QPushButton::clicked,[=](){bool isEmpty = ui->tableWidget->findItems("趙云",Qt::MatchExactly).empty();if(isEmpty){QMessageBox::warning(this,"警告!","趙云沒有了!");}else{//先找到趙云所在的行int row = ui->tableWidget->findItems("趙云",Qt::MatchExactly).first()->row();//找到行數(shù) 刪除掉ui->tableWidget->removeRow(row);}});}Widget::~Widget() {delete ui; }Other控件混合
#include "widget.h" #include "ui_widget.h" #include <QMovie> Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);//設置默認選中第0項ui->stackedWidget->setCurrentIndex(0);//stackWidgetconnect(ui->btnScroll,&QPushButton::clicked,[=](){ui->stackedWidget->setCurrentIndex(0);});connect(ui->btnTab,&QPushButton::clicked,[=](){ui->stackedWidget->setCurrentIndex(1);});connect(ui->btnToolBox,&QPushButton::clicked,[=](){ui->stackedWidget->setCurrentIndex(2);});//下拉框使用ui->comboBox->addItem("奔馳");ui->comboBox->addItem("寶馬");ui->comboBox->addItem("拖拉機");//點擊拖拉機按鈕connect(ui->btnChoose,&QPushButton::clicked,[=](){ui->comboBox->setCurrentText("拖拉機");});//利用QLabel顯示圖片ui->img->setPixmap(QPixmap(":/Image/Luffy.png"));//利用QLabel顯示gif圖片QMovie * movie = new QMovie(":/Image/mario.gif");ui->movie->setMovie(movie);//播放gifmovie->start(); }Widget::~Widget() {delete ui; }總結
以上是生活随笔為你收集整理的Qt 5——常用控件(QLable、QLineEdit、)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作121:[““]进行变量赋值
- 下一篇: 工作115:赋值给form对象