可运行QT计算器源码

挺不错的,就是缺少了好多该有的功能,想自己改一下,等等我弄明白就写一个哦……
原文地址:可运行QT计算器源码 作者:蓝石头

========================================================================

main.cpp

========================================================================

#include<qapplication.h>
#include"mainwindow.h"
int main(int argc,char **argv)
{
    QApplication   a(argc,argv);
    window *w = new window();
    w->show();
    return a.exec();
}

=======================================================================

mainwindow.h

=======================================================================

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include<QpushButton>
#include<QLineEdit>
#include<QWidget>
#include<QString>
#include<QLabel>
class window:public QWidget
{
    Q_OBJECT
public:
    window();
public slots:
    void Button1Click();
    void Button2Click();
    void Button3Click();
    void Button4Click();
    void Button5Click();
    void Button6Click();
    void Button7Click();
    void Button8Click();
    void Button9Click();
    void Button0Click();
    void ButtonAddC();
    void ButtonDelC();
    void ButtonDivC();
    void ButtonMulC();
    void ButtonResult();

private:
    QLineEdit *lineEdit;
    QPushButton *Button[15];

    QString firstNum,secondNum;
    char oper;
    int index;
};


#endif // MAINWINDOW_H

=========================================================================

mainwindows.cpp

=========================================================================

#include "mainwindow.h"

#include<qfont.h>
window::window( )
{
firstNum="0";
secondNum="0";
oper=' ';
lineEdit=new QLineEdit(this);
index = 0;

Button[10]=new QPushButton("*",this);
Button[11]=new QPushButton("/",this);
Button[12]=new QPushButton("+",this);
Button[13]=new QPushButton("-",this);
Button[14]=new QPushButton("=",this);
for(int i = 0; i < 10; i++)
{
    QString temp;
    temp = QString::number(i,'f',0);
    Button[i] = new QPushButton(temp,this);
}
lineEdit->setGeometry(20,10,250,30);
for(int i = 1; i <= 3; i++)
{
    for(int j = 1; j <= 5; j++)
    {
        Button[index]->setGeometry(20+(j-1)*50,10+i*60,30,30);
        index++;
    }
}

connect(Button[1],SIGNAL(clicked()),this,SLOT(Button1Click()));
connect(Button[2],SIGNAL(clicked()),this,SLOT(Button2Click()));
connect(Button[3],SIGNAL(clicked()),this,SLOT(Button3Click()));
connect(Button[4],SIGNAL(clicked()),this,SLOT(Button4Click()));
connect(Button[5],SIGNAL(clicked()),this,SLOT(Button5Click()));
connect(Button[6],SIGNAL(clicked()),this,SLOT(Button6Click()));
connect(Button[7],SIGNAL(clicked()),this,SLOT(Button7Click()));
connect(Button[8],SIGNAL(clicked()),this,SLOT(Button8Click()));
connect(Button[9],SIGNAL(clicked()),this,SLOT(Button9Click()));
connect(Button[0],SIGNAL(clicked()),this,SLOT(Button0Click()));
connect(Button[12],SIGNAL(clicked()),this,SLOT(ButtonAddC()));
connect(Button[13],SIGNAL(clicked()),this,SLOT(ButtonDelC()));
connect(Button[10],SIGNAL(clicked()),this,SLOT(ButtonMulC()));
connect(Button[11],SIGNAL(clicked()),this,SLOT(ButtonDivC()));

connect(Button[14],SIGNAL(clicked()),this,SLOT(ButtonResult()));

}

void window::Button1Click()
{
    if(secondNum == "0")
        secondNum = "1";
    else
    {
        secondNum=lineEdit->text();
        secondNum.append('1');
    }
    lineEdit->setText(secondNum);
}
void window::Button2Click()
{
    if(secondNum=="0")
        secondNum="2";
    else
    {
        secondNum=lineEdit->text();
        secondNum.append('2');
    }
    lineEdit->setText(secondNum);
}
void window::Button3Click()
{
    if(secondNum=="0")
        secondNum="3";
    else
    {
        secondNum=lineEdit->text();
        secondNum.append('3');
    }
    lineEdit->setText(secondNum);
}

void window::Button4Click()
{
    if(secondNum=="0")
        secondNum="4";
    else
    {
        secondNum=lineEdit->text();
        secondNum.append('4');
    }
    lineEdit->setText(secondNum);
}
void window::Button5Click()
{
    if(secondNum=="0")
        secondNum="5";
    else
    {
        secondNum=lineEdit->text();
        secondNum.append('5');
    }
    lineEdit->setText(secondNum);
}
void window::Button6Click()
{
    if(secondNum=="0")
        secondNum="6";
    else
    {
        secondNum=lineEdit->text();
        secondNum.append('6');
    }
    lineEdit->setText(secondNum);
}

void window::Button7Click()
{
    if(secondNum=="0")
        secondNum="7";
    else
    {
        secondNum=lineEdit->text();
        secondNum.append('7');
    }
    lineEdit->setText(secondNum);
}

void window::Button8Click()
{
    if(secondNum=="0")
        secondNum="8";
    else
    {
        secondNum=lineEdit->text();
        secondNum.append('8');
    }
    lineEdit->setText(secondNum);
}
void window::Button9Click()
{
    if(secondNum=="0")
        secondNum="9";
    else
    {
        secondNum=lineEdit->text();
        secondNum.append('9');
    }
    lineEdit->setText(secondNum);
}
void window::Button0Click()
{
    if(secondNum=="0")
        secondNum="0";
    else
    {
        secondNum=lineEdit->text();
        secondNum.append('0');
    }
    lineEdit->setText(secondNum);
}


void window::ButtonAddC()
{
    double n,m;
    secondNum=lineEdit->text();
    if(oper==' ')
    {
        firstNum=secondNum;
        secondNum="0";
        oper='+';
    }
    else
    {
        n=firstNum.toDouble();
        m=secondNum.toDouble();
        if(oper=='+') n=n+m;
        if(oper=='-') n=n-m;
        if(oper=='*') n=n*m;
        if(oper=='/') n=n/m;
        firstNum=QString::number(n,'f',2);
        secondNum="0";
        oper='+';
        lineEdit->setText(firstNum);
    }
}

void window::ButtonDelC()
{
    double n,m;
    secondNum=lineEdit->text();
    if(oper==' ')
    {
        firstNum=secondNum;
        secondNum="0";
        oper='-';
    }
    else
    {
        n=firstNum.toDouble();
        m=secondNum.toDouble();
        if(oper=='+') n=n+m;
        if(oper=='-') n=n-m;
        if(oper=='*') n=n*m;
        if(oper=='/') n=n/m;
        firstNum=QString::number(n,'f',2);
        secondNum="0";
        oper='-';
        lineEdit->setText(firstNum);
    }
}
void window::ButtonMulC()
{
    double n,m;
    secondNum=lineEdit->text();
    if(oper==' ')
    {
        firstNum=secondNum;
        secondNum="0";
        oper='*';
    }
    else
    {
        n=firstNum.toDouble();
        m=secondNum.toDouble();
        if(oper=='+') n=n+m;
        if(oper=='-') n=n-m;
        if(oper=='*') n=n*m;
        if(oper=='/') n=n/m;
        firstNum=QString::number(n,'f',2);
        secondNum="0";
        oper='*';
        lineEdit->setText(firstNum);
    }
}

void window::ButtonDivC()
{
    double n,m;
    secondNum=lineEdit->text();
    if(oper==' ')
    {
        firstNum=secondNum;
        secondNum="0";
        oper='/';
    }
    else
    {
        n=firstNum.toDouble();
        m=secondNum.toDouble();
        if(oper=='+') n=n+m;
        if(oper=='-') n=n-m;
        if(oper=='*') n=n*m;
        if(oper=='/') n=n/m;
        firstNum=QString::number(n,'f',2);
        secondNum="0";
        lineEdit->setText(firstNum);
    }
}
void window::ButtonResult()
{
    double n,m;
    secondNum=lineEdit->text();
    if(oper==' ')
    {
        firstNum=secondNum;
        secondNum="0";
        lineEdit->setText(firstNum);
        firstNum="0";
        oper=' ';
    }
    else
    {
        n=firstNum.toDouble();
        m=secondNum.toDouble();
        if(oper=='+') n=n+m;
        if(oper=='-') n=n-m;
        if(oper=='*') n=n*m;
        if(oper=='/') n=n/m;
        firstNum=QString::number(n,'f',2);
        secondNum="0";
        oper=' ';
        lineEdit->setText(firstNum);
        firstNum="0";
    }
}

==============================================================================

程序截图如下

==============================================================================

[转载]可运行QT计算器源码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值