其实这断代码没什么优秀之处,贴出来主要为为了方便自己和他人,因为以后如果用到这一块的话,这些代码可能能够直接拿过来用。
InpugDialog.h头文件:
#ifndef INPUGDIALOG_H #define INPUGDIALOG_H #include <QtGui> #include "ui_inpugdialog.h" class InpugDialog : public QDialog { Q_OBJECT public: InpugDialog(QWidget *parent = 0, Qt::WFlags flags = 0); ~InpugDialog(); QPushButton *nameButton; QPushButton *sexButton; QPushButton *ageButton; QPushButton *statureButton; QLabel *label1; QLabel *label2; QLabel *label3; QLabel *label4; QLabel *nameLabel; QLabel *sexLabel; QLabel *ageLabel; QLabel *statureLabel; private: Ui::InpugDialogClass ui; private slots: void slotName(); void slotSex(); void slotAge(); void slotStature(); }; #endif // INPUGDIALOG_H
InpugDialog.cpp文件
#include "inpugdialog.h" InpugDialog::InpugDialog(QWidget *parent, Qt::WFlags flags) : QDialog(parent, flags) { ui.setupUi(this); setWindowTitle(tr("Input Dialog")); //创建各种标签对象 label1=new QLabel(tr("Name")); label2=new QLabel(tr("Sex")); label3=new QLabel(tr("Age")); label4=new QLabel(tr("Stature")); //创建各种显示标签 nameLabel=new QLabel(tr("LiMing")); sexLabel=new QLabel(tr("F")); ageLabel=new QLabel(tr("12")); statureLabel=new QLabel(tr("123")); //创建各种修改按钮 nameButton=new QPushButton(tr("Modify")); sexButton=new QPushButton(tr("Modify")); ageButton=new QPushButton(tr("Modify")); statureButton=new QPushButton(tr("Modify")); //布局管理 QGridLayout *layout=new QGridLayout(this); layout->addWidget(label1,0,0); layout->addWidget(nameLabel,0,1); layout->addWidget(nameButton,0,2); layout->addWidget(label2,1,0); layout->addWidget(sexLabel,1,1); layout->addWidget(sexButton,1,2); layout->addWidget(label3,2,0); layout->addWidget(ageLabel,2,1); layout->addWidget(ageButton,2,2); layout->addWidget(label4,3,0); layout->addWidget(statureLabel,3,1); layout->addWidget(statureButton,3,2); setLayout(layout); //信号处理 connect(nameButton,SIGNAL(clicked()),this,SLOT(slotName())); connect(sexButton,SIGNAL(clicked()),this,SLOT(slotSex())); connect(ageButton,SIGNAL(clicked()),this,SLOT(slotAge())); connect(statureButton,SIGNAL(clicked()),this,SLOT(slotStature())); } InpugDialog::~InpugDialog() { } //各种槽函数 void InpugDialog::slotAge(){ bool ok; int age=QInputDialog::getInteger(this,tr("User Age"),tr("Please input your age"),ageLabel->text().toInt(),0,100,1,&ok); if (ok){ ageLabel->setText(QString(tr("%1")).arg(age)); } } void InpugDialog::slotSex(){ QStringList list; list<<tr("male")<<tr("female"); bool ok; QString sex=QInputDialog::getItem(this,tr("Sex"),tr("Please select your sex"),list,0,false,&ok); if(ok){ sexLabel->setText(sex); } } void InpugDialog::slotName(){ bool ok; QString name=QInputDialog::getText(this,tr("User Name"),tr("Input your name"),QLineEdit::Normal,nameLabel->text(),&ok); if(ok&& !name.isEmpty()){ nameLabel->setText(name); } } void InpugDialog::slotStature(){ bool ok; double d=QInputDialog::getDouble(this,tr("User Stature"),tr("please input your stature"),170.00,0,200,2,&ok); if(ok){ statureLabel->setText(QString(tr("%1")).arg(d)); } }
main.cpp
#include "inpugdialog.h" #include <QtGui/QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); InpugDialog *w=new InpugDialog(); w->show(); return a.exec(); }
下面粘贴一下效果图: