Qt 制作一个简易的计算器

1.通过UI界面封装出计算器的大致模型

进入设计页面后,左侧会有各种控件,可以将他们拖拽到你想编辑的窗口中,我们要做的是计算器,所以只用到很少几个控件,我们最主要用到Push Button这个控件来做我们计算器的按钮,lineEdit显示数字,我们可以将它拖拽到窗口,然后就可以对它进行编辑。

 2.创建一个新的类,用来完成加减乘除的运算

 Fun类头文件需要定义加减乘除的函数:

 Fun类.cpp内实现相应函数:

#include "Fun.h"

Fun::Fun(QObject *parent) : QObject(parent)
{

}

double Fun::add(double val0, double val1)
{
    return val0 + val1;
}

double Fun::sub(double val0, double val1)
{
    return val0 - val1;
}

double Fun::mul(double val0, double val1)
{
    return val0 * val1;
}

double Fun::div(double val0, double val1)
{
    return val0 / val1;
}

3.将按键转到槽,编写槽函数

进入设计页面,右键点击按钮,选择转到槽,再选择clicked(点击信号),就能跳转到代码页面自动生成获取点击信号的槽函数,在槽函数中就可以编辑点击动作触发的事件了。

按键0--9 "+" " -" "*" "/" "00" "."写法相似:

将得到的数字显示在lineEdit上。

清除键、回退键和退出键:

 等号键:

void MainWindow::on_equalButton_clicked()
{
    QString val;
    val = ui->lineEdit->text();//拿到存在lineEdit的字符串
    if(val.isEmpty()){//判空
        return ;
    }
    if(val.indexOf("+")!=-1){//用indexof的方法找到“+”
        double i,h,j,k;
        i = val.indexOf("+");//找出加号的下标
        h = val.leftRef(i).toDouble();//找到加号前的数字
        j = val.rightRef(val.size() - i).toDouble();//找到加号后的数字
        k = cal.add(h,j);//调用加法函数
        ui->lineEdit->setText(QString::number(k));//将结果输出
    }

    if(val.indexOf("-")!=-1){
        double i,h,j,k;
        i = val.indexOf("-");
        h = val.leftRef(i).toDouble();
        ++i;
        j = val.rightRef(val.size() - i).toDouble();
        k = cal.sub(h,j);
        ui->lineEdit->setText(QString::number(k));
    }

    if(val.indexOf("*")!=-1){
        double i,h,j,k;
        i = val.indexOf("*");
        h = val.leftRef(i).toDouble();
        ++i;
        j = val.rightRef(val.size() - i).toDouble();
        k = cal.mul(h,j);
        ui->lineEdit->setText(QString::number(k));
    }

    if(val.indexOf("/")!=-1){
        double i,h,j,k;
        i = val.indexOf("/");
        h = val.leftRef(i).toDouble();
        ++i;
        j = val.rightRef(val.size() - i).toDouble();
        k = cal.div(h,j);
        ui->lineEdit->setText(QString::number(k));
    }
}

运行结果:

由于第一次用Qt做一个简单的项目,水平有限,所以还是会有许多的bug,不足之处,还望指正。

  • 9
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值