头文件:#include
| QInputDialog::getText() | 文字输入框 |
| QInputDialog::getItem() | 条目选择框 |
| QInputDialog::getInt() | int型输入框 |
| QInputDialog::getDouble() | double 型输入框 |
//文字输入框
bool ok;
QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
tr("User name:"), QLineEdit::Normal, QDir::home().dirName(), &ok);
if (ok && !text.isEmpty())
textLabel->setText(text);
//条目选择框
QStringList items;
items << tr("Spring") << tr("Summer") << tr("Fall") << tr("Winter");
bool ok;
QString item = QInputDialog::getItem(this, tr("QInputDialog::getItem()"), tr("Season:"), items, 0, false, &ok);
if (ok && !item.isEmpty())
itemLabel->setText(item)
//int型输入框
bool ok;
int i = QInputDialog::getInt(this, tr("QInputDialog::getInteger()"), tr("Percentage:"), 25, 0, 100, 1, &ok);
if (ok)
integerLabel->setText(tr("%1%").arg(i));
//double 型输入框
bool ok;
double d = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"),
tr("Amount:"), 37.56, -10000, 10000, 2, &ok);
if (ok)
doubleLabel->setText(QString("$%1").arg(d));
实例:创建一个工程 继承于QWidget
在.h中添加
private:
QLabel *lab1;
QLabel *lab2;
QLabel *lab3;
QLabel *lab4;
QLabel *label1;
QLabel *label2;
QLabel *label3;
QLabel *label4;
QPushButton *btn1;
QPushButton *btn2;
QPushButton *btn3;
QPushButton *btn4;
QGridLayout* mainlayout;
private slots:
void button1();
void button2();
void button3();
void button4();
.cpp中 构造函数
setWindowTitle("成员信息");
resize(400,400);
lab1=new QLabel("姓名:");
lab2=new QLabel("性别:");
lab3=new QLabel("年龄:");
lab4=new QLabel("成绩:");
label1=new QLabel("王");
label2=new QLabel("男");
label3=new QLabel("20");
label4=new QLabel("60");
label1->setFrameStyle(QFrame::Panel|QFrame::Sunken);
label2->setFrameStyle(QFrame::Panel|QFrame::Sunken);
label3->setFrameStyle(QFrame::Panel|QFrame::Sunken);
label4->setFrameStyle(QFrame::Panel|QFrame::Sunken);
btn1=new QPushButton("修改姓名");
btn2=new QPushButton("修改性别");
btn3=new QPushButton("修改年龄");
btn4=new QPushButton("修改成绩");
mainlayout=new QGridLayout(this);
mainlayout->addWidget(lab1,0,0);
mainlayout->addWidget(label1,0,1);
mainlayout->addWidget(btn1,0,2);
mainlayout->addWidget(lab2,1,0);
mainlayout->addWidget(label2,1,1);
mainlayout->addWidget(btn2,1,2);
mainlayout->addWidget(lab3,2,0);
mainlayout->addWidget(label3,2,1);
mainlayout->addWidget(btn3,2,2);
mainlayout->addWidget(lab4,3,0);
mainlayout->addWidget(label4,3,1);
mainlayout->addWidget(btn4,3,2);
mainlayout->setSpacing(20);
mainlayout->setMargin(20);
//mainlayout->setSizeConstraint(QLayout::SetFixedSize);
connect(btn1,&QPushButton::clicked,this,&Widget::button1);
connect(btn2,&QPushButton::clicked,this,&Widget::button2);
connect(btn3,&QPushButton::clicked,this,&Widget::button3);
connect(btn4,&QPushButton::clicked,this,&Widget::button4);
4个槽函数
void Widget::button1()//标准字符输入框
{
bool ok;
QString text=QInputDialog::getText(this,"获取姓名","请输入姓名:",QLineEdit::Normal,"",&ok);
if(ok&& !text.isEmpty())
{
label1->setText(text);
}
}
void Widget::button2()//标准条目选择对话框
{
QStringList sst;
sst<<"男"<<"女";
bool ok;
QString st=QInputDialog::getItem(this,"获取性别","请选择性别",sst,0,false,&ok);
if(ok&&!sst.isEmpty())
{
label2->setText(st);
}
}
void Widget::button3()//int 型输入框
{
bool ok;
int age=QInputDialog::getInt(this,"获取年龄","请输入性别",label3->text().toInt(&ok),0,100,1,&ok);
if(ok)
{
label3->setText(QString("%1").arg(age));
}
}
void Widget::button4()//double 输入框
{
bool ok;
double num=QInputDialog::getDouble(this,"获取分数","请输入分数",label4->text().toDouble(&ok),0,150,1,&ok);
if(ok)
{
label4->setText(QString("%1").arg(num));
}
}
效果:
界面为:
效果:点击修改姓名
点击ok
其他功能类似



