【qt】一次性学会所有对话框1:https://developer.aliyun.com/article/1523160
三.颜色对话框
1.获取颜色
void MainWindow::on_pushButtonColoe_clicked() { QPalette plet=ui->plainTextEdit->palette();//拿到纯文本编辑器 QColor currentColor=plet.color(QPalette::Text);//拿到文本颜色 QColor color=QColorDialog::getColor( currentColor,//默认选中颜色 this, "颜色选择框"); if(color.isValid()) { plet.setColor(QPalette::Text,color);//修改成选择的颜色 ui->plainTextEdit->setPalette(plet);//设置到纯文本中 } }
运行结果:
四.字体对话框
1.获取字体
void MainWindow::on_pushButtonFont_clicked() { bool ok=false; QFont font=QFontDialog::getFont( &ok,//判断是否选择成功 ui->plainTextEdit->font(),//对话框默认字体 this, "字体选择框"); if(ok) { ui->plainTextEdit->setFont(font); } }
参数我也记不住,一定要看在线文档呀
运行结果:
五.输入对话框
1.输入文本
void MainWindow::on_pushButtonString_clicked() { bool ok=false; QString str=QInputDialog::getText( this, "输入文本框", "请输入姓名:", QLineEdit::Normal,//输入的方式 "姚国林",//默认值 &ok);//判断是否成功 if(ok&&!str.isEmpty()) { ui->plainTextEdit->appendPlainText(str); } }
运行结果:
这里的输入方式有4种
NoEcho就是没有回显的,类似于Linux操作系统里输入密码
Password就是正常的*******这种
最后一个就是,当输入密码时显示,不输入的时候 ******
2.输入整数
void MainWindow::on_pushButtonInt_clicked() { bool ok=false; //我这里是输入整数打算与字体大小关联起来 int value =QInputDialog::getInt( this, "整数输入框", "请输入字体大小:", ui->plainTextEdit->font().pixelSize(),//默认输入的大小 8,//最小值 80,//最大值 1,//单步值 &ok); if(ok) { QFont font=ui->plainTextEdit->font(); font.setPointSize(value); ui->plainTextEdit->setFont(font); } }
运行结果:
3.输入小数
void MainWindow::on_pushButtonFloat_clicked() { bool ok=false; double value=QInputDialog::getDouble( this, "输入浮点数框", "输入小数:",//前缀 3.14,//默认值 0,//最小值 999,//最大值 2,//精度 &ok); if(ok) { QString str=QString::asprintf("输入了一个浮点数:%.2f",value); ui->plainTextEdit->appendPlainText(str); } }
运行结果:
4.输入条目
void MainWindow::on_pushButtonItem_clicked() { bool ok=false; QStringList jobs={"老师","医生","炊事员","程序员"}; QString job= QInputDialog::getItem( this, "输入条目框", "请选择职业:", jobs,//条目列表 0,//默认显示第几个 true,//是否能进行编辑 &ok); if(ok&&!job.isEmpty()) { ui->plainTextEdit->appendPlainText(job); } }
运行结果:
六.消息对话框
1.问题框
void MainWindow::on_pushButtonQuestion_clicked() { QMessageBox::StandardButton ret= QMessageBox::question(//返回的是一个标准按钮 this, "问题框", "你承认你是一个帅哥吗?",//问题框内容 QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel,//选择的按钮 QMessageBox::NoButton);//默认的选择 if(ret==QMessageBox::Yes) { ui->plainTextEdit->appendPlainText("选择了 YES"); } else if(ret==QMessageBox::No) { ui->plainTextEdit->appendPlainText("选择了 No"); } else if(ret==QMessageBox::Cancel) { ui->plainTextEdit->appendPlainText("选择了 Cancel"); } else { ui->plainTextEdit->appendPlainText("什么也没有选择"); } }
运行结果:
2.信息框
void MainWindow::on_pushButtonInformation_clicked() { QMessageBox::information( this, "消息框", "你居然不给我点关注", QMessageBox::Ok, QMessageBox::NoButton); }
运行结果:
3.警告框
void MainWindow::on_pushButtonWarning_clicked() { QMessageBox::warning( this, "警告框", "你要完蛋了!"); }
运行结果:
4.危机框
void MainWindow::on_pushButtonCritical_clicked() { QMessageBox::critical( this, "危机框", "你完蛋了!系统姚重启了"); }
运行结果:
5.关于框
void MainWindow::on_pushButtonAbout_clicked() { QMessageBox::about( this, "关于框", "我是一位天才,我的能力十分强悍!"); }
运行结果:
6.关于qt框
void MainWindow::on_pushButtonAboutQt_clicked() { QMessageBox::aboutQt( this, "关于Qt"); }
运行结果:
七.总结
虽然对话框的种类虽多,但是一类的用法基本差不多,重要的是我们要记住接口就行了,参数不要背,看在线文档!
对了,这里姚用到这些头文件:
慢慢成长,慢慢成为大