qt4第一例:mini计数器

6 篇文章 0 订阅
6 篇文章 0 订阅

不要qt designer,像写java程序一样,把控件一个一个写到界面上。刚开始来个简单的计数器。

程序执行的结果如图:

程序很简单,由三个源文件组成,分别是caculator.h,caculator.cpp,main.cpp

代码如下:

 1、caculator.h 

/*
*    文件:caculator.h
*    作者:yangdk
*    email:jidacun@163.com
*    主页:
http://blog.csdn.net/yang_dk
*/


#ifndef _CACULATOR_H
#define  _CACULATOR_H

#include 
< QDialog >

class  QLabel;
class  QLineEdit;
class  QPushButton;
class  QVBoxLayout;
class  QHBoxLayout;
class  QGridLayout;

class  CacuDialog :  public  QDialog
{
    Q_OBJECT
    
public:
    CacuDialog(QWidget 
*parent = 0);

private slots:
    
void add();
    
void dec();
    
void mul();
    
void div();
    
void clear();

private:
    QLineEdit 
*editFirst;
    QLineEdit 
*editSecond;
    QLineEdit 
*editResult;
    QPushButton 
*addButton,*decButton,*mulButton,*divButton;
    QPushButton 
*clearButton;
}
;

#endif

2、caculator.cpp

/*
*    文件:caculator.cpp
*    作者:yangdk
*    邮箱:jidacun@163.com
*    主页:
http://blog.csdn.net/yang_dk
*/


#include 
< QtGui >
#include 
" caculator.h "

CacuDialog::CacuDialog(QWidget 
* parent) : QDialog(parent)
{
    editFirst 
= new QLineEdit;
    editSecond 
= new QLineEdit;
    editResult 
= new QLineEdit;
    
    editResult
->setReadOnly(true);    //显示控件只读
    editResult->setAlignment(Qt::AlignRight);    //让结果的显示向右对齐
    
    addButton 
= new QPushButton(tr("Add"));
    decButton 
= new QPushButton(tr("Dec"));
    mulButton 
= new QPushButton(tr("Mul"));
    divButton 
= new QPushButton(tr("Div"));
    clearButton 
= new QPushButton(tr("clear"));
    clearButton
->setDefault(true);

    connect(addButton,SIGNAL(clicked()),
this,SLOT(add()));
    connect(decButton,SIGNAL(clicked()),
this,SLOT(dec()));
    connect(mulButton,SIGNAL(clicked()),
this,SLOT(mul()));
    connect(divButton,SIGNAL(clicked()),
this,SLOT(div()));
    connect(clearButton,SIGNAL(clicked()),
this,SLOT(clear()));

    QVBoxLayout 
*mainLayout = new QVBoxLayout;
    QHBoxLayout 
*top = new QHBoxLayout;
    QGridLayout 
*bottom =new QGridLayout;
    
    top
->addWidget(editFirst);
    top
->addWidget(editSecond);
    top
->addWidget(editResult);
    
    bottom
->addWidget(addButton, 00);
    bottom
->addWidget(decButton, 01);
    bottom
->addWidget(mulButton, 10);
    bottom
->addWidget(divButton, 11);
    bottom
->addWidget(clearButton,0,2,2,1);//占两横一列
    
    mainLayout
->addLayout(top);
    mainLayout
->addLayout(bottom);
    setLayout(mainLayout);
}


void  CacuDialog::add()
{
    
double res;
    res 
= editFirst->text().toDouble()+editSecond->text().toDouble();
    editResult
->setText(QString::number(res));
}


void  CacuDialog::dec()
{
    
double res;
    res 
= editFirst->text().toDouble()-editSecond->text().toDouble();
    editResult
->setText(QString::number(res));
}


void  CacuDialog::mul()
{
    
double res;
    res 
= editFirst->text().toDouble()*editSecond->text().toDouble();
    editResult
->setText(QString::number(res));
}


void  CacuDialog::div()
{
    
double res;
    res 
= editFirst->text().toDouble()/editSecond->text().toDouble();
    editResult
->setText(QString::number(res));
}


void  CacuDialog::clear()
{
    editFirst
->setText("");
    editSecond
->setText("");
    editResult
->setText("0");
}

3、main.cpp

/*
* 文件:main.cpp
*    作者:yangdk
* email:jidacun@163.com
*    主页:
http://blog.csdn.net/yang_dk
*/


#include 
< QApplication >
#include 
< QtGui >

#include 
" caculator.h "

int  main( int  argc,  char   * argv[])
{
    QApplication app(argc,argv);
    CacuDialog dialog;
    
return dialog.exec();
}

ok!将这三个文件放在同一个目录下,进入这个文件夹,执行下面三句话

qmake  - project
qmake
make     
// 这一局视你的环境而定,可能是make,tmake,nmake

好了,这就生成了可执行文件。直接运行就可以得到上面图示的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值