qt中控件的使用函数
1、Text Edit编辑框
//将编辑框中的内容转化成Utf8编码 ui->textEdit->toPlainText().toUtf8();
2、Combo Box下拉框的应用
(1)将内容加入下拉框中
ui->comboBox->addItem(ui->recvMulAddrEdit->text());
(2)删除下拉框中当前的内容
ui->comboBox->removeItem(ui->recvMulAddr->currentIndex());
3、List Wiget
(1)实现双击
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)建立文件缩小图标
QListWidgetItem *item = new QListWidgetItem(QIcon(fileDir),info.fileName()); ui->ListWidget->addItem(item); //往List Wiget里面添加项
(4)在List Widget列表中显示其他窗口信息
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); //
4、Label
(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);
5、Check Box按键
ui->checkBox->setCheckState(Qt::Unchecked); //把按钮重新置于没有被选中的状态
6、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);"); }
7、Line Edit输入框
//垂直布局管理器 QVBoxLayout *vbox = new QVBoxLayout(this); lineEdit = new QLineEdit(this); //定义一个lineEdit对象 lineEdit->setMinimumHeight(60); //设置最小高度 lineEdit->setAlignment(Qt::AlignRight); //设置输入框中右边对齐
8、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代码的路径,不是绝对路径
9、action按钮绑定方法
connect(ui->action_New,SIGNAL(triggered(bool)),this,SLOT(doProcessNew())); //action按钮的绑定方法,这里和pushButton不同的时候触发为triggered(bool)
10、锁定背景图片,不让其他按钮随着背景图片一起变化
MainWindow{border-image: url(:/new/prefix1/imag/00958PICfNK.jpg);} 解释:MainWindow :显示背景的窗口名 border-image:图片跟着边框一起变化 /new/prefix1/imag/00958PICfNK.jpg:图片路径
鉴于本人才疏学浅,所以其中不免有遗漏或者错误,恳请各位博友批评指正。