Qt中控件的函數(shù)使用教程分享
1、Text Edit編輯框
//將編輯框中的內(nèi)容轉(zhuǎn)化成Utf8編碼 ui->textEdit->toPlainText().toUtf8();
2、Combo Box下拉框的應(yīng)用
(1)將內(nèi)容加入下拉框中
ui->comboBox->addItem(ui->recvMulAddrEdit->text());
(2)刪除下拉框中當(dāng)前的內(nèi)容
ui->comboBox->removeItem(ui->recvMulAddr->currentIndex());
3、List Wiget
3.1、實現(xiàn)雙擊
void QPlayer::on_listWidget_doubleClicked(const QModelIndex &index)//雙擊進入 { //"mplayer -slave -quiet -geometry x:y -zoom -x x -y y move.mp4" //http://192.168.1.248/move.mp4 QString movepath = path+ui->listWidget->currentItem()->text(); //ui->listWidget->currentItem()->text() 取出當(dāng)前光標雙擊的一行內(nèi)容 QString cmd = QString("mplayer -slave -quiet -geometry %1:%2 -zoom -x %3 -y %4 %5") .arg(QString::number(ui->label->x())) .arg(QString::number(ui->label->y())) .arg(QString::number(ui->label->width())) .arg(QString::number(ui->label->height())) .arg(movepath); if(mProcess->state() == QProcess::Running) { mProcess->kill(); mProcess->waitForFinished(); }else { mProcess->start(cmd); } }
3.2、獲取當(dāng)前點擊內(nèi)容的行號
int num = ui->listWidget->row(ui->listWidget->currentItem());
3.3、建立文件縮小圖標
QListWidgetItem *item = new QListWidgetItem(QIcon(fileDir),info.fileName()); ui->ListWidget->addItem(item); //往List Wiget里面添加項
3.4、在List Widget列表中顯示其他窗口信息
Form *win = new Form(ui->listWidget); //這是一個子窗口,ui->listWidget把窗口對象放進ListWidget列表中 QListWidgetItem *item = new QListWidgetItem(); item->setSizeHint(win->size()); //每項的大小設(shè)置為win的大小 ui->listWidget->addItem(item); ui->listWidget->setItemWidget(item,win); //
4、Label
4.1、顯示圖片
第一種方法:
ui->label->setScaledContents(true);//顯示圖片的全部 ui->label->setPixmap(QPixmap(tempDir));//顯示圖片,tempDir是照片的絕對路徑
第二種方法:
QPixmap mmp; mmp.load("E:/GZ17-3/system/Qt-program/001/code/LoginWin/tst.png"); mmp = mmp.scaled(ui->label->size()); ui->label->setPixmap(mmp);
4.2、播放視頻,播放器是mplaer
void ProcessMplayer::on_listWidget_doubleClicked(const QModelIndex &index) //雙擊播放視頻 { qDebug()<<ui->listWidget->currentItem()->text(); QString cmd = "E:/GZ17-3/system/Qt-program/mplayer/mplayer.exe"; //cmd.append(ui->listWidget->currentItem()->text()); QStringList argmList; argmList<<"-slave"; //從模式--通過命令控制 argmList<<"-quiet"; //屏蔽解碼信息輸出 argmList<<"-wid";//嵌入到界面上,后面接窗口ID argmList<<QString::number(ui->label->winId()); argmList<<ui->listWidget->currentItem()->text(); if(mProcess->state() == QProcess::Running) { mProcess->kill(); mProcess->waitForFinished(); } mProcess->start(cmd, argmList); }
4.3、播放gif動態(tài)圖
QMovie *movie = new QMovie("../form/1.gif"); // "../form/1.gif"圖片路徑 movie->start(); //開始播放動態(tài)圖 ui->label->setMovie(movie); //將圖片設(shè)置為為動態(tài) ui->label->setScaledContents(true); //盡可能完整的播放整張動圖 ,此處要設(shè)置為true
4.4、截屏
//截屏 QPixmap map = QApplication::screens().at(0)->grabWindow(0); map.save("./screen.png"); //保存到當(dāng)前目錄下,名字為screen.png QBuffer buffer; //圖片暫時存儲器 buffer.open(QIODevice::WriteOnly); map.save(&buffer); buffer.data();//得到QByteArray 對象可以轉(zhuǎn)換為char* //顯示 map = map.scaled(ui->label->size()); //圖片跟著屏幕的縮放 ui->label->setPixmap(map);
4.5、Check Box按鍵
ui->checkBox->setCheckState(Qt::Unchecked); //把按鈕重新置于沒有被選中的狀態(tài)
4.6、Push Button按鍵
(1)排列出一個鍵盤
//鍵盤數(shù)組 QToolButton *buttons[12]; //按鈕初始化 buttons[0] = ui->btn_value0; buttons[1] = ui->btn_value1; buttons[2] = ui->btn_value2; buttons[3] = ui->btn_value3; buttons[4] = ui->btn_value4; buttons[5] = ui->btn_value5; buttons[6] = ui->btn_value6; buttons[7] = ui->btn_value7; buttons[8] = ui->btn_value8; buttons[9] = ui->btn_value9; buttons[10] = ui->btn_Point; buttons[11] = ui->btn_delete; //所有按鈕信號關(guān)聯(lián)一個槽函數(shù) for(int i=0;i<12;i++) { connect(buttons[i],SIGNAL(clicked(bool)),this,SLOT(clicked_button())); } //點擊哪個按鈕 void ArmInfo::clicked_button() { //獲取是哪個按鈕點擊(信號發(fā)送者) QToolButton *obj = (QToolButton*)sender(); QString ip = ui->lineEdit_Amend->text(); if(obj->text() == "<-") //檢測是否點擊刪除按鈕 { ip.remove(ip.length()-1,1);//刪除最后一個字符 } else { ip.append(obj->text());//拼接字符串 } ui->lineEdit_Amend->setText(ip); }
(2)設(shè)置按鈕狀態(tài)
ui->pushButton->setCheckable(true); //按一次就改變一次狀態(tài),比如說第一次按下時true那么第二次就是false connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(check(bool)));
(3)按鈕按下和釋放時切換圖片
void MainWindow::on_pushButton_pressed() //按下按鈕時 { ui->pushButton->setStyleSheet("border-image: url(:/new/prefix1/imag/人體炮彈.png);"); } void MainWindow::on_pushButton_released() //釋放按鈕時 { ui->pushButton->setStyleSheet("border-image: url(:/new/prefix1/imag/atm.png);"); }
4.7、Line Edit輸入框
//垂直布局管理器 QVBoxLayout *vbox = new QVBoxLayout(this); lineEdit = new QLineEdit(this); //定義一個lineEdit對象 lineEdit->setMinimumHeight(60); //設(shè)置最小高度 lineEdit->setAlignment(Qt::AlignRight); //設(shè)置輸入框中右邊對齊
4.8、toolButton
(1)設(shè)置按鈕的大小
//90為x軸,100為y軸,300為寬,400為高設(shè)置界面的大小 ui->toolButton->setGeometry(90,100,300,400);
(2)設(shè)置圖標
//設(shè)置圖標,../toolbar/icon.jpg 這是圖片所在路徑,要在源程序目錄下 ui->toolButton->setIcon(QIcon("../toolbar/icon.jpg"));
解釋:toolbar代碼的路徑,不是絕對路徑
4.9、action按鈕綁定方法
connect(ui->action_New,SIGNAL(triggered(bool)),this,SLOT(doProcessNew())); //action按鈕的綁定方法,這里和pushButton不同的時候觸發(fā)為triggered(bool)
4.10、鎖定背景圖片,不讓其他按鈕隨著背景圖片一起變化
MainWindow{border-image: url(:/new/prefix1/imag/00958PICfNK.jpg);}
解釋:
- MainWindow :顯示背景的窗口名
- border-image:圖片跟著邊框一起變化
- /new/prefix1/imag/00958PICfNK.jpg:圖片路徑
到此這篇關(guān)于Qt中控件的函數(shù)使用教程分享的文章就介紹到這了,更多相關(guān)Qt控件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實現(xiàn)拼圖游戲代碼(graphics圖形庫)
這篇文章主要為大家詳細介紹了C++實現(xiàn)拼圖游戲代碼,帶有g(shù)raphics圖形庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05C++高精度計時的幾種方法總結(jié)(測試函數(shù)運行時間)
本文介紹了C++中常用的幾種程序計時方法,包括clock()函數(shù)、GetTickCount()、QueryPerformanceCounter()以及C++11中的chrono庫函數(shù),這篇文章主要介紹了C++高精度計時的幾種方法,需要的朋友可以參考下2024-09-09C++ 中的虛函數(shù)表及虛函數(shù)執(zhí)行原理詳解
這篇文章主要介紹了C++ 中的虛函數(shù)表及虛函數(shù)執(zhí)行原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03C語言實現(xiàn)獲取文件大小與創(chuàng)建修改時間
這篇文章主要為大家詳細介紹了如何通過C語言實現(xiàn)獲取文件大小、創(chuàng)建時間與修改時間,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11c++中的volatile和variant關(guān)鍵字詳解
大家好,本篇文章主要講的是c++中的volatile和variant關(guān)鍵字詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01C++11?成員函數(shù)作為回調(diào)函數(shù)的使用方式
這篇文章主要介紹了C++11?成員函數(shù)作為回調(diào)函數(shù)的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11