一、Text Edit編輯框數組
//將編輯框中的內容轉化成Utf8編碼 ui->textEdit->toPlainText().toUtf8();
二、Combo Box下拉框的應用app
(1)將內容加入下拉框中函數
ui->comboBox->addItem(ui->recvMulAddrEdit->text());
(2)刪除下拉框中當前的內容佈局
ui->comboBox->removeItem(ui->recvMulAddr->currentIndex());
三、List Wigetui
(1)實現雙擊this
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() 取出當前光標雙擊的一行內容 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); } }
(2)獲取當前點擊內容的行號編碼
int num = ui->listWidget->row(ui->listWidget->currentItem());
(3)創建文件縮小圖標url
QListWidgetItem *item = new QListWidgetItem(QIcon(fileDir),info.fileName()); ui->ListWidget->addItem(item); //往List Wiget裏面添加項
(4)在List Widget列表中顯示其餘窗口信息spa
Form *win = new Form(ui->listWidget); //這是一個子窗口,ui->listWidget把窗口對象放進ListWidget列表中 QListWidgetItem *item = new QListWidgetItem(); item->setSizeHint(win->size()); //每項的大小設置爲win的大小 ui->listWidget->addItem(item); ui->listWidget->setItemWidget(item,win); //
四、Labelcode
(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);
(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); }
(3)播放gif動態圖
QMovie *movie = new QMovie("../form/1.gif"); // "../form/1.gif"圖片路徑 movie->start(); //開始播放動態圖 ui->label->setMovie(movie); //將圖片設置爲爲動態 ui->label->setScaledContents(true); //儘量完整的播放整張動圖 ,此處要設置爲true
(4)截屏
//截屏 QPixmap map = QApplication::screens().at(0)->grabWindow(0); map.save("./screen.png"); //保存到當前目錄下,名字爲screen.png QBuffer buffer; //圖片暫時存儲器 buffer.open(QIODevice::WriteOnly); map.save(&buffer); buffer.data();//獲得QByteArray 對象能夠轉換爲char* //顯示 map = map.scaled(ui->label->size()); //圖片跟着屏幕的縮放 ui->label->setPixmap(map);
五、Check Box按鍵
ui->checkBox->setCheckState(Qt::Unchecked); //把按鈕從新置於沒有被選中的狀態
六、Push Button按鍵
(1)排列出一個鍵盤
//鍵盤數組 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; //全部按鈕信號關聯一個槽函數 for(int i=0;i<12;i++) { connect(buttons[i],SIGNAL(clicked(bool)),this,SLOT(clicked_button())); } //點擊哪一個按鈕 void ArmInfo::clicked_button() { //獲取是哪一個按鈕點擊(信號發送者) 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)設置按鈕狀態
ui->pushButton->setCheckable(true); //按一次就改變一次狀態,好比說第一次按下時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);"); }
七、Line Edit輸入框
//垂直佈局管理器 QVBoxLayout *vbox = new QVBoxLayout(this); lineEdit = new QLineEdit(this); //定義一個lineEdit對象 lineEdit->setMinimumHeight(60); //設置最小高度 lineEdit->setAlignment(Qt::AlignRight); //設置輸入框中右邊對齊
八、toolButton
(1)設置按鈕的大小
//90爲x軸,100爲y軸,300爲寬,400爲高設置界面的大小 ui->toolButton->setGeometry(90,100,300,400);
(2)設置圖標
//設置圖標,../toolbar/icon.jpg 這是圖片所在路徑,要在源程序目錄下 ui->toolButton->setIcon(QIcon("../toolbar/icon.jpg")); 解釋:toolbar代碼的路徑,不是絕對路徑
九、action按鈕綁定方法
connect(ui->action_New,SIGNAL(triggered(bool)),this,SLOT(doProcessNew())); //action按鈕的綁定方法,這裏和pushButton不一樣的時候觸發爲triggered(bool)
十、鎖定背景圖片,不讓其餘按鈕隨着背景圖片一塊兒變化
MainWindow{border-image: url(:/new/prefix1/imag/00958PICfNK.jpg);} 解釋:MainWindow :顯示背景的窗口名 border-image:圖片跟着邊框一塊兒變化 /new/prefix1/imag/00958PICfNK.jpg:圖片路徑