QT学习 第一章:基本对话框--使用标准输入框

Refer from http://blog.csdn.net/lxj521/article/details/6413920

使用标准输入框操作系统:Fedora Linux 14
创建文件夹InputDialog,以下是代码(三个文件)

  1. /** Object: InputDialog 
  2.  ** Desc:   使用标准输入框 
  3.  ** File:   main.cpp 
  4.  ** Compile:qmake-qt4 -project;qmake-qt4;make; 
  5.  ** Author: LiXiujie www.xiujie.cn 
  6.  ** Date:  2011-05-12 
  7.  ** Note:  编译说明: 
  8.  **      qmake-qt4 -prject 自动生成程序的项目文件(*.pro); 
  9.  **      qmake-qt4 用于生成程序的Makefile文件; 
  10.  **      make 编译 Makefile 文件得到可执行文件。 
  11.  ** */  
  12. #include <QApplication> // 所有QT图形化应用程序必须包含此文件,它包含了QT图形化应用程序的各种资源、基本设置、控制流及事件处理等。  
  13. #include "InputDialog.h" // 自定义类头文件  
  14. int main(int argc, char *argv[]){  
  15.         QApplication app(argc, argv);  
  16.         InputDialog *id = new InputDialog();  
  17.         id->show();  
  18.         return app.exec();  
  19. }  

 

 

  1. /** Object: InputDialog 
  2.  ** Desc:   使用标准输入框 
  3.  ** File:   InputDialog.h 
  4.  ** Class:  InputDialog使用标准输入框类 头文件 
  5.  ** Compile:qmake-qt4 -project;qmake-qt4;make; 
  6.  ** Author: LiXiujie www.xiujie.cn 
  7.  ** Date:  2011-05-12 
  8.  ** Note:  编译说明: 
  9.  **      qmake-qt4 -prject 自动生成程序的项目文件(*.pro); 
  10.  **      qmake-qt4 用于生成程序的Makefile文件; 
  11.  **      make 编译 Makefile 文件得到可执行文件。 
  12.  ** */  
  13. #ifndef INPUTDIALOG_H  
  14. #define INPUTDIALOG_H  
  15. #include <QtGui>  
  16. class InputDialog : public QDialog  
  17. {  
  18.     Q_OBJECT  
  19. public:  
  20.     InputDialog();  
  21. public:  
  22.     QPushButton *m_pPBName; // 按钮控件  
  23.     QPushButton *m_pPBSex;  
  24.     QPushButton *m_pPBAge;  
  25.     QPushButton *m_pPBStature;  
  26.     QLabel *m_pLabel1;  
  27.     QLabel *m_pLabel2;  
  28.     QLabel *m_pLabel3;  
  29.     QLabel *m_pLabel4;  
  30.     QLabel *m_pLabelName;  
  31.     QLabel *m_pLabelSex;  
  32.     QLabel *m_pLabelAge;  
  33.     QLabel *m_pLabelStature;  
  34. private slots:  
  35.     void slotName();  
  36.     void slotSex();  
  37.     void slotAge();  
  38.     void slotStature();  
  39. };  
  40. #endif // INPUTDIALOG_H  

 

  1. /** Object: InputDialog 
  2.  ** Desc:   使用标准输入框 
  3.  ** File:   InputDialog.cpp 
  4.  ** Class:  InputDialog使用标准输入框类 源文件 
  5.  ** Compile:qmake-qt4 -project;qmake-qt4;make; 
  6.  ** Author: LiXiujie www.xiujie.cn 
  7.  ** Date:  2011-05-12 
  8.  ** Note:  编译说明: 
  9.  **      qmake-qt4 -prject 自动生成程序的项目文件(*.pro); 
  10.  **      qmake-qt4 用于生成程序的Makefile文件; 
  11.  **      make 编译 Makefile 文件得到可执行文件。 
  12.  ** */  
  13. #include "InputDialog.h"  
  14. InputDialog::InputDialog() : QDialog(){  
  15.     setWindowTitle(tr("Input Dialog")); // 设置对话框标题  
  16.     m_pLabel1 = new QLabel(tr("Name : ")); // 生成标签控件实例,并设置显示内容  
  17.     m_pLabel2 = new QLabel(tr("Sex : "));  
  18.     m_pLabel3 = new QLabel(tr("Age : "));  
  19.     m_pLabel4 = new QLabel(tr("Stature : "));  
  20.     m_pLabelName = new QLabel(tr("LiXiujie"));  
  21.     m_pLabelName->setFrameStyle(QFrame::Panel|QFrame::Sunken); // 设置标签控件框架样式为面板的、凹陷的。  
  22.     m_pLabelSex = new QLabel(tr("male"));  // male 男  female 女  
  23.     m_pLabelSex->setFrameStyle(QFrame::Panel|QFrame::Sunken);  
  24.     m_pLabelAge = new QLabel(tr("25"));  
  25.     m_pLabelAge->setFrameStyle(QFrame::Panel|QFrame::Sunken);  
  26.     m_pLabelStature = new QLabel("168.5");  
  27.     m_pLabelStature->setFrameStyle(QFrame::Panel|QFrame::Sunken);  
  28.     m_pPBName = new QPushButton;  
  29.     m_pPBName->setIcon(QIcon("images/btn.png")); // 设置按钮图标  
  30.     m_pPBSex = new QPushButton;  
  31.     m_pPBSex->setIcon(QIcon("images/btn.png"));  
  32.     m_pPBAge =  new QPushButton;  
  33.     m_pPBAge->setIcon(QIcon("images/btn.png"));  
  34.     m_pPBStature = new QPushButton;  
  35.     m_pPBStature->setIcon(QIcon("images/btn.png"));  
  36.     QGridLayout *pLayout = new QGridLayout(this); // 表格布局控件  
  37.     pLayout->addWidget(m_pLabel1, 0, 0);  
  38.     pLayout->addWidget(m_pLabelName, 0, 1);  
  39.     pLayout->addWidget(m_pPBName, 0, 2);  
  40.     pLayout->addWidget(m_pLabel2, 1, 0);  
  41.     pLayout->addWidget(m_pLabelSex, 1, 1);  
  42.     pLayout->addWidget(m_pPBSex, 1, 2);  
  43.     pLayout->addWidget(m_pLabel3, 2, 0);  
  44.     pLayout->addWidget(m_pLabelAge, 2, 1);  
  45.     pLayout->addWidget(m_pPBAge, 2, 2);  
  46.     pLayout->addWidget(m_pLabel4, 3, 0);  
  47.     pLayout->addWidget(m_pLabelStature, 3, 1);  
  48.     pLayout->addWidget(m_pPBStature, 3, 2);  
  49.     pLayout->setMargin(15); // 设置表格布局四周边空白为15像素。  
  50.     pLayout->setSpacing(10); // 设置表格布局内部元素间空白为10像素。  
  51.     pLayout->setColumnMinimumWidth(1, 120); // 设置表格布局中第二列最小宽度为120像素。  
  52.     /* 绑定按钮单击事件处理函数 */  
  53.     connect(m_pPBName, SIGNAL(clicked()), this, SLOT(slotName()));  
  54.     connect(m_pPBSex, SIGNAL(clicked()), this, SLOT(slotSex()));  
  55.     connect(m_pPBAge, SIGNAL(clicked()), this, SLOT(slotAge()));  
  56.     connect(m_pPBStature, SIGNAL(clicked()), this, SLOT(slotStature()));  
  57. }  
  58. void InputDialog::slotName(){  
  59.     bool ok;  
  60.     QString name = QInputDialog::getText(this, tr("User Name"),  
  61.                         tr("Please input new name:"), QLineEdit::Normal, m_pLabelName->text(), &ok); // 文本输入对话框  
  62.     if(ok && !name.isEmpty()) // 文本输入对话框,确定并输入内容不为空  
  63.         m_pLabelName->setText(name);  
  64. }  
  65. void InputDialog::slotSex(){  
  66.     QStringList list; // 字符串链表  
  67.     list << tr("male") << tr("female");  
  68.     bool ok;  
  69.     QString sex = QInputDialog::getItem(this, tr("Sex"),  
  70.                         tr("Please select sex:"), list, 0, false, &ok); // 下拉选项输入对话框  
  71.     if (ok)  
  72.         m_pLabelSex->setText(sex);  
  73. }  
  74. void InputDialog::slotAge(){  
  75.     bool ok;  
  76.     int age = QInputDialog::getInteger(this, tr("User Age"),  
  77.                     tr("Please input age:"), m_pLabelAge->text().toInt(), 0, 150, 1, &ok); // 整数数字输入对话框  
  78.     if(ok)  
  79.         m_pLabelAge->setText(QString(tr("%1")).arg(age)); // %1用arg()参数age替换  
  80. }  
  81. void InputDialog::slotStature(){  
  82.     bool ok;  
  83.     double d = QInputDialog::getDouble(this, tr("Stature"),  
  84.                         tr("Please input stature:"), m_pLabelStature->text().toDouble(), 0, 230.00, 1, &ok);  
  85.     if(ok)  
  86.         m_pLabelStature->setText(QString(tr("%1")).arg(d));  
  87. }  

 

按钮图标:images文件夹下


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值