常用的对话框:
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));
}
![](http://hi.csdn.net/attachment/201107/31/0_1312085455s9bV.gif)
![](http://hi.csdn.net/attachment/201107/31/0_13120854960WAY.gif)