常用的对话框:
QFileDialog,QColorDialog,QFontDialog,QInputDialog,QMessageDialog以及自定义对话框。
这里只做了输入对话框的,其他类似。
这次使用了ui设计界面设计的Dialog,没有使用纯代码。所以只写相应的槽函数即可
源文件:
#include "dialog.h" #include "ui_dialog.h" #include <QInputDialog> #include <QStringList> #include <QString> Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); } Dialog::~Dialog() { delete ui; } void Dialog::on_nameBtn_clicked() { bool ok; QString name=QInputDialog::getText(this,tr("标准输入对话框"),tr("请输入姓名:"), QLineEdit::Normal,ui->name->text(),&ok); if(ok&&!name.isEmpty()) ui->name->setText(name); } void Dialog::on_sexBtn_clicked() { QStringList SexList; // SexList<<tr("男")<<tr("女"); bool ok; QString SexItem=QInputDialog::getItem(this,tr("标准条目选择对话框"),tr("请选择性别:"), SexList,0,false,&ok); if(ok&&!SexItem.isEmpty()) ui->sex->setText(SexItem); } void Dialog::on_ageBtn_clicked() { bool ok; int ageInt=QInputDialog::getInt(this,tr("标准整数输入对话框"),tr("请输入年龄:"), ui->age->text().toInt(&ok),1,200,1,&ok); if(ok) ui->age->setText(QString(tr("%1")).arg(ageInt)); } void Dialog::on_gradeBtn_clicked() { bool ok; double score=QInputDialog::getDouble(this,tr("标准浮点数输入对话框"),tr("请输入成绩:"), ui->grade->text().toDouble(&ok),1,100,1,&ok); if(ok) ui->grade->setText(QString(tr("%1")).arg(score)); }