使用标准输入框操作系统:Fedora Linux 14 创建文件夹InputDialog,以下是代码(三个文件) /** Object: InputDialog ** Desc: 使用标准输入框 ** File: main.cpp ** Compile:qmake-qt4 -project;qmake-qt4;make; ** Author: LiXiujie www.xiujie.cn ** Date: 2011-05-12 ** Note: 编译说明: ** qmake-qt4 -prject 自动生成程序的项目文件(*.pro); ** qmake-qt4 用于生成程序的Makefile文件; ** make 编译 Makefile 文件得到可执行文件。 ** */ #include <QApplication> // 所有QT图形化应用程序必须包含此文件,它包含了QT图形化应用程序的各种资源、基本设置、控制流及事件处理等。 #include "InputDialog.h" // 自定义类头文件 int main(int argc, char *argv[]){ QApplication app(argc, argv); InputDialog *id = new InputDialog(); id->show(); return app.exec(); } /** Object: InputDialog ** Desc: 使用标准输入框 ** File: InputDialog.h ** Class: InputDialog使用标准输入框类 头文件 ** Compile:qmake-qt4 -project;qmake-qt4;make; ** Author: LiXiujie www.xiujie.cn ** Date: 2011-05-12 ** Note: 编译说明: ** qmake-qt4 -prject 自动生成程序的项目文件(*.pro); ** qmake-qt4 用于生成程序的Makefile文件; ** make 编译 Makefile 文件得到可执行文件。 ** */ #ifndef INPUTDIALOG_H #define INPUTDIALOG_H #include <QtGui> class InputDialog : public QDialog { Q_OBJECT public: InputDialog(); public: QPushButton *m_pPBName; // 按钮控件 QPushButton *m_pPBSex; QPushButton *m_pPBAge; QPushButton *m_pPBStature; QLabel *m_pLabel1; QLabel *m_pLabel2; QLabel *m_pLabel3; QLabel *m_pLabel4; QLabel *m_pLabelName; QLabel *m_pLabelSex; QLabel *m_pLabelAge; QLabel *m_pLabelStature; private slots: void slotName(); void slotSex(); void slotAge(); void slotStature(); }; #endif // INPUTDIALOG_H /** Object: InputDialog ** Desc: 使用标准输入框 ** File: InputDialog.cpp ** Class: InputDialog使用标准输入框类 源文件 ** Compile:qmake-qt4 -project;qmake-qt4;make; ** Author: LiXiujie www.xiujie.cn ** Date: 2011-05-12 ** Note: 编译说明: ** qmake-qt4 -prject 自动生成程序的项目文件(*.pro); ** qmake-qt4 用于生成程序的Makefile文件; ** make 编译 Makefile 文件得到可执行文件。 ** */ #include "InputDialog.h" InputDialog::InputDialog() : QDialog(){ setWindowTitle(tr("Input Dialog")); // 设置对话框标题 m_pLabel1 = new QLabel(tr("Name : ")); // 生成标签控件实例,并设置显示内容 m_pLabel2 = new QLabel(tr("Sex : ")); m_pLabel3 = new QLabel(tr("Age : ")); m_pLabel4 = new QLabel(tr("Stature : ")); m_pLabelName = new QLabel(tr("LiXiujie")); m_pLabelName->setFrameStyle(QFrame::Panel|QFrame::Sunken); // 设置标签控件框架样式为面板的、凹陷的。 m_pLabelSex = new QLabel(tr("male")); // male 男 female 女 m_pLabelSex->setFrameStyle(QFrame::Panel|QFrame::Sunken); m_pLabelAge = new QLabel(tr("25")); m_pLabelAge->setFrameStyle(QFrame::Panel|QFrame::Sunken); m_pLabelStature = new QLabel("168.5"); m_pLabelStature->setFrameStyle(QFrame::Panel|QFrame::Sunken); m_pPBName = new QPushButton; m_pPBName->setIcon(QIcon("images/btn.png")); // 设置按钮图标 m_pPBSex = new QPushButton; m_pPBSex->setIcon(QIcon("images/btn.png")); m_pPBAge = new QPushButton; m_pPBAge->setIcon(QIcon("images/btn.png")); m_pPBStature = new QPushButton; m_pPBStature->setIcon(QIcon("images/btn.png")); QGridLayout *pLayout = new QGridLayout(this); // 表格布局控件 pLayout->addWidget(m_pLabel1, 0, 0); pLayout->addWidget(m_pLabelName, 0, 1); pLayout->addWidget(m_pPBName, 0, 2); pLayout->addWidget(m_pLabel2, 1, 0); pLayout->addWidget(m_pLabelSex, 1, 1); pLayout->addWidget(m_pPBSex, 1, 2); pLayout->addWidget(m_pLabel3, 2, 0); pLayout->addWidget(m_pLabelAge, 2, 1); pLayout->addWidget(m_pPBAge, 2, 2); pLayout->addWidget(m_pLabel4, 3, 0); pLayout->addWidget(m_pLabelStature, 3, 1); pLayout->addWidget(m_pPBStature, 3, 2); pLayout->setMargin(15); // 设置表格布局四周边空白为15像素。 pLayout->setSpacing(10); // 设置表格布局内部元素间空白为10像素。 pLayout->setColumnMinimumWidth(1, 120); // 设置表格布局中第二列最小宽度为120像素。 /* 绑定按钮单击事件处理函数 */ connect(m_pPBName, SIGNAL(clicked()), this, SLOT(slotName())); connect(m_pPBSex, SIGNAL(clicked()), this, SLOT(slotSex())); connect(m_pPBAge, SIGNAL(clicked()), this, SLOT(slotAge())); connect(m_pPBStature, SIGNAL(clicked()), this, SLOT(slotStature())); } void InputDialog::slotName(){ bool ok; QString name = QInputDialog::getText(this, tr("User Name"), tr("Please input new name:"), QLineEdit::Normal, m_pLabelName->text(), &ok); // 文本输入对话框 if(ok && !name.isEmpty()) // 文本输入对话框,确定并输入内容不为空 m_pLabelName->setText(name); } void InputDialog::slotSex(){ QStringList list; // 字符串链表 list << tr("male") << tr("female"); bool ok; QString sex = QInputDialog::getItem(this, tr("Sex"), tr("Please select sex:"), list, 0, false, &ok); // 下拉选项输入对话框 if (ok) m_pLabelSex->setText(sex); } void InputDialog::slotAge(){ bool ok; int age = QInputDialog::getInteger(this, tr("User Age"), tr("Please input age:"), m_pLabelAge->text().toInt(), 0, 150, 1, &ok); // 整数数字输入对话框 if(ok) m_pLabelAge->setText(QString(tr("%1")).arg(age)); // %1用arg()参数age替换 } void InputDialog::slotStature(){ bool ok; double d = QInputDialog::getDouble(this, tr("Stature"), tr("Please input stature:"), m_pLabelStature->text().toDouble(), 0, 230.00, 1, &ok); if(ok) m_pLabelStature->setText(QString(tr("%1")).arg(d)); } 按钮图标:images文件夹下