Refer from http://blog.csdn.net/lxj521/article/details/6413920
使用标准输入框操作系统: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文件夹下