返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Qt实现制作简单的计算器
  • 274
分享到

Qt实现制作简单的计算器

Qt实现计算器Qt计算器 2022-12-19 06:12:29 274人浏览 薄情痞子
摘要

目录前言完整代码效果图前言 今天使用Qt制作了一个很简单的计算器,觉得挺有意思的,所以在这里跟大家分享一下。 这里先跟大家说说使用到的函数: 1、槽连接函数 connect(信号发送

前言

今天使用Qt制作了一个很简单的计算器,觉得挺有意思的,所以在这里跟大家分享一下。

这里先跟大家说说使用到的函数:

1、槽连接函数

connect(信号发送者,发送的信号,信号接收者,信号接收者的槽函数)   //前面我有一篇文章已经介绍过槽函数的使用了,大家有兴趣可以看看,这里就不详细说了。 

2、取出按钮中的字符

QString line = ui->pushButton1->text() //取出按钮pushButton1中的字符存放到line中

3、设置输入框中显示的内容

ui->lineEdit->setText(line); //设置输入框lineEdit中显示的内容,line为要显示的内容

4、清空字符数组

line.clear(); //清空字符数组line中的内容

5、将字符转换成整形、浮点型、数值

double sum = temp1.toDouble() + temp2.toDouble(); //将字符转换成浮点型

6、将整形、浮点型、数值转换成字符

ui->lineEdit->setText(QString::number(sum)); //将浮点型转换成字符

7、从字符的最后一位开始往开头的方向按位删除字符

 line.chop(1); //尾剔除,即是从字符串后面开始按位删除,每次删除字符数组line中的一位,如果是2则是每次两位,依次类推

完整代码

下面是头文件widget.h中的代码:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QString>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

protected slots:
    void item0();//0
    void item1();//1
    void item2();//2
    void item3();//3
    void item4();//4
    void item5();//5
    void item6();//6
    void item7();//7
    void item8();//8
    void item9();//9
    void sub();//减号
    void div();//除号
    void mul();//乘号
    void cancel();//取消
    void delet();//尾剔除
    void add();//加号
    void equal();//等于号
    void point();//小数点

private:
    Ui::Widget *ui;

};

#endif // WIDGET_H

源文件widget.cpp中的代码:

#include "widget.h"
#include "ui_widget.h"
#include <QString>
#include <QDebug>
#include <stdlib.h>
#include <string.h>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    //连接槽函数
    connect(ui->pushButton0,SIGNAL(clicked(bool)),this,SLOT(item0())); //0
    connect(ui->pushButton1,SIGNAL(clicked(bool)),this,SLOT(item1())); //1
    connect(ui->pushButton2,SIGNAL(clicked(bool)),this,SLOT(item2())); //2
    connect(ui->pushButton3,SIGNAL(clicked(bool)),this,SLOT(item3())); //3
    connect(ui->pushButton4,SIGNAL(clicked(bool)),this,SLOT(item4())); //4
    connect(ui->pushButton5,SIGNAL(clicked(bool)),this,SLOT(item5())); //5
    connect(ui->pushButton6,SIGNAL(clicked(bool)),this,SLOT(item6())); //6
    connect(ui->pushButton7,SIGNAL(clicked(bool)),this,SLOT(item7())); //7
    connect(ui->pushButton8,SIGNAL(clicked(bool)),this,SLOT(item8())); //8
    connect(ui->pushButton9,SIGNAL(clicked(bool)),this,SLOT(item9())); //9

    connect(ui->pushButton_c,SIGNAL(clicked(bool)),this,SLOT(cancel()));//取消
    connect(ui->pushButton_add,SIGNAL(clicked(bool)),this,SLOT(add()));//加号
    connect(ui->pushButton_equal,SIGNAL(clicked(bool)),this,SLOT(equal()));//等于号
    connect(ui->pushButton_point,SIGNAL(clicked(bool)),this,SLOT(point()));//小数点
    connect(ui->pushButton_div,SIGNAL(clicked(bool)),this,SLOT(div()));//除号
    connect(ui->pushButton_sub,SIGNAL(clicked(bool)),this,SLOT(sub()));//减号
    connect(ui->pushButton_mul,SIGNAL(clicked(bool)),this,SLOT(mul()));//乘号
    connect(ui->pushButton_delete,SIGNAL(clicked(bool)),this,SLOT(delet()));//尾剔除
}


QString line;
QString item_0; //0
QString item_1; //1
QString item_2; //2
QString item_3;//3
QString item_4;//4
QString item_5;//5
QString item_6;//6
QString item_7;//7
QString item_8;//8
QString item_9;//9
QString temp1,temp2; //临时存放两次输入的要进行计算的项
double sum = 0;  //计算后的结果
int flag = 0,flag1 = 0; //flag加号标志,flag1等于号标志
int flag3 = 0;//减号标志
int flag4 = 0;//乘号标志
int flag5 = 0;//除号标志
Widget::~Widget()
{
    delete ui;
}

void Widget::item0() //0
{
    item_0 = ui->pushButton0->text(); //获取按键中的字符"0"
    line += item_0;//每按一次按键就相加一次按键中的字符"0"
    ui->lineEdit->setText(line); //显示到输入条中
}

void Widget::item1() //1
{
    item_1 = ui->pushButton1->text();
    line += item_1;
    ui->lineEdit->setText(line);
}

void Widget::item2() //2
{
   item_2 = ui->pushButton2->text(); //获取按键中的字符"2"
   line += item_2; //每按一次按键就相加一次按键中的字符"2"
   ui->lineEdit->setText(line);
}


void Widget::item3() //3
{
   item_3 = ui->pushButton3->text(); //获取按键中的字符"3"
   line += item_3; //每按一次按键就相加一次按键中的字符"3"
   ui->lineEdit->setText(line);
}

void Widget::item4() //4
{
    item_4 = ui->pushButton4->text();
    line += item_4;
    ui->lineEdit->setText(line);
}

void Widget::item5() //5
{
    item_5 = ui->pushButton5->text();
    line += item_5;
    ui->lineEdit->setText(line);
}

void Widget::item6() //6
{
    item_6 = ui->pushButton6->text();
    line += item_6;
    ui->lineEdit->setText(line);
}

void Widget::item7() //7
{
    item_7 = ui->pushButton7->text();
    line += item_7;
    ui->lineEdit->setText(line);
}

void Widget::item8() //8
{
    item_8 = ui->pushButton8->text();
    line += item_8;
    ui->lineEdit->setText(line);
}

void Widget::item9() //9
{
    item_9 = ui->pushButton9->text();
    line += item_9;
    ui->lineEdit->setText(line);
}


void Widget::point() //小数点
{
    if(flag1 == 0) //没有按等于号按键,说明没有进行运算,所以显示第一次输入的字符串
    {
        line +=".";
        ui->lineEdit->setText(line);
    }

    if(flag1 == 1) //按了等于号按键,这时候要显示后面一次输入的字符串
    {
        line  = ui->lineEdit->text();
        line += ".";
        ui->lineEdit->setText(line);
        flag1 = 0;
    }
}


void Widget::delet() //尾剔除
{
    line = ui->lineEdit->text(); //获取输入条中的字符
    line.chop(1); //倒位删除,即是从字符串后面开始按位删除
    ui->lineEdit->setText(line);
}

void Widget::cancel() //重新置零
{
   line.clear();
   temp1.clear();
   temp2.clear();
   sum = 0;
   flag = 0;
   flag1 = 0;
   flag3 = 0;
   flag4 =0;
   flag5 = 0;
   ui->lineEdit->setText(line);//输出0
}

void Widget::add() //相加
{
    flag = 1;
    temp1 = ui->lineEdit->text(); //获取前面输入的字符,并临时保存起来
    line.clear(); //清空字符数组
    ui->lineEdit->setText(line);//显示清空状态
}

void Widget::sub() //相减
{
    flag3 = 1;//按了加号按键就改变状态
    temp1 = ui->lineEdit->text(); //获取前面输入的字符,并临时保存起来
    line.clear(); //清空字符数组
    ui->lineEdit->setText(line);//显示清空状态
}

void Widget::div()//除法
{
    flag4 = 1;//按了加号按键就改变状态
    temp1 = ui->lineEdit->text(); //获取前面输入的字符,并临时保存起来
    line.clear(); //清空字符数组
    ui->lineEdit->setText(line);//显示清空状态
}


void Widget::mul()//乘法
{
    flag5 = 1;//按了加号按键就改变状态
    temp1 = ui->lineEdit->text(); //获取前面输入的字符,并临时保存起来
    line.clear(); //清空字符数组
    ui->lineEdit->setText(line);//显示清空状态
}

void Widget::equal() //得出结果
{
    flag1 = 1; //按一次等于号就改变状态
    if(flag == 1) //加法
    {
        temp2 = ui->lineEdit->text();
        line.clear(); //清空字符串
        sum = temp1.toDouble() + temp2.toDouble(); //将字符转换成浮点型
        ui->lineEdit->setText(QString::number(sum)); //将浮点型转换成字符
        flag = 0; //重新让标志位置零,等待下一次的加法进行
    }

    else if(flag3 == 1) //减法
    {
        temp2 = ui->lineEdit->text();
        line.clear(); //清空字符串
        ui->lineEdit->setText(line);
        sum = temp1.toDouble() - temp2.toDouble(); //将字符转换成浮点型

        if(sum == 0) //等于0
        {
            ui->lineEdit->setText("0");
        }
        ui->lineEdit->setText(QString::number(sum)); //将浮点型转换成字符
            // qDebug()<<sum;
        flag3 = 0; //重新让标志位置零,等待下一次的减法进行
    }

    else if(flag4 == 1) //除法
    {
        temp2 = ui->lineEdit->text();
        line.clear(); //清空字符串
        sum = temp1.toDouble() / temp2.toDouble(); //将字符转换成浮点型
        if(temp2 == "0") //分母等于0
        {
            ui->lineEdit->setText("0");
        }
        ui->lineEdit->setText(QString::number(sum)); //将浮点型转换成字符
        flag4 = 0; //重新让标志位置零,等待下一次的除法进行
    }

   else if(flag5 == 1) //乘法
    {
        temp2 = ui->lineEdit->text();
        line.clear(); //清空字符串
        sum = temp1.toDouble() * temp2.toDouble(); //将字符转换成浮点型
        ui->lineEdit->setText(QString::number(sum)); //将浮点型转换成字符
        flag5 = 0; //重新让标志位置零,等待下一次的乘法进行
    }

}

效果图

效果图如下:

到此这篇关于Qt实现制作简单的计算器的文章就介绍到这了,更多相关Qt计算器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Qt实现制作简单的计算器

本文链接: https://lsjlt.com/news/175186.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Qt实现制作简单的计算器
    目录前言完整代码效果图前言 今天使用qt制作了一个很简单的计算器,觉得挺有意思的,所以在这里跟大家分享一下。 这里先跟大家说说使用到的函数: 1、槽连接函数 connect(信号发送...
    99+
    2022-12-19
    Qt实现计算器 Qt计算器
  • 怎么使用Qt制作简单的计算器
    这篇文章主要讲解了“怎么使用Qt制作简单的计算器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Qt制作简单的计算器”吧!前言这里先跟大家说说使用到的函数:槽连接函数connect(信...
    99+
    2023-07-04
  • QT实现简单计算器功能
    本文实例为大家分享了QT实现简单计算器功能的具体代码,供大家参考,具体内容如下 效果图: 新建工程,创建类MainWindow,基类是QMainWindow,声明变量和函数、槽 m...
    99+
    2024-04-02
  • Qt实现可以计算大数的简单计算器
    目录1、简介2、作品演示3、重点原理讲解4、代码主体框架1、简介 计算器是我们生活中很常见的东西,它可以由多种语言多种方式来实现,今天我想讲的是基于C++语言,由QT实现的可以计算大...
    99+
    2022-12-12
    Qt 大数运算 计算器 Qt 计算器 Qt 大数运算
  • QT如何实现简单计算器功能
    这篇文章主要讲解了“QT如何实现简单计算器功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“QT如何实现简单计算器功能”吧!效果图:新建工程,创建类MainWindow,基类是QMainWi...
    99+
    2023-06-30
  • 用Java制作简单的计算器
    本篇文章主要是提供思路,当然文章末尾也又提供了源代码。 代码也是写了几天,重要的理解,不是直接复制粘贴就交作业了。 转载请注明出处,尊重作者劳动成果。 目录 界面的设计: 事件的响应: 计算: 详细代码如下:  总结: 要制作一个简...
    99+
    2023-10-09
    java spring jvm
  • vue实现计数器简单制作
    本文实例为大家分享了vue实现计数器简单实现代码,供大家参考,具体内容如下 过程注意事项 创建vue实例时:el(挂载点)data(数据)methods(方法)。 ...
    99+
    2024-04-02
  • C++制作简单的计算器功能
    计算器这个基本都很熟悉,一个简单的计算器有加法,减法,乘法,除法这四种功能。 如下图 此处我此处逻辑如下,先判断输入的运算符符号,然后在判断输入的数字来进行一个计算。 #inclu...
    99+
    2024-04-02
  • python制作简单计算器功能
    本文实例为大家分享了python实现简单计算器功能的具体代码,供大家参考,具体内容如下 效果如图: 主要思路: 用列表保存按下的键,按下等于,转换为字符串,利用内置函数eval计算...
    99+
    2024-04-02
  • JavaScript制作简单网页计算器
    本文实例为大家分享了JavaScript制作简单网页计算器的具体代码,供大家参考,具体内容如下 一、题目 利用JavaScript中的函数,完成数字加、减、乘、除的运算,实现一个简单...
    99+
    2022-11-13
    js 计算器
  • JavaScript制作简单计算器功能
    本文实例为大家分享了JavaScript制作简单计算器的具体代码,供大家参考,具体内容如下 1. 任务要求 1)掌握数据的类型转换 2)学会获取文本框控件的数据以及给相应控件赋值 3...
    99+
    2024-04-02
  • swift实现简单的计算器
    本文实例为大家分享了swift实现简单计算器的具体代码,供大家参考,具体内容如下 代码 // //  ViewController.swift //  Calculator // ...
    99+
    2024-04-02
  • unity实现简单计算器
    本文实例为大家分享了unity实现简单计算器的具体代码,供大家参考,具体内容如下 using System.Text; using UnityEngine; using Unit...
    99+
    2024-04-02
  • PHP实现简单计算器
    目录 一、题目:  二、基本界面设计代码:  三、分析: 四、实现编程三个步骤 五、完整实现代码 一、题目:     题目描述:下列列表框中有+、-、*、/四种运算符,选择不同的运算符进行,单击计算按钮进行不同的计算。   二、基本界...
    99+
    2023-10-01
    php
  • Android实现简单计算器
    本文实例为大家分享了Android实现简单计算器的具体代码,供大家参考,具体内容如下 功能 1、加减乘除四则运算 2、归0 3、回退 4、即时运算 配置 在build.gradle...
    99+
    2024-04-02
  • jQuery实现简单计算器
    本文实例为大家分享了jQuery实现简单计算器的具体代码,供大家参考,具体内容如下 基本功能: 1、计算器换肤,目前有白色(默认色)、绿色、蓝色、灰色、橙色几种颜色可供选择。 2、简...
    99+
    2024-04-02
  • Swift实现简单计算器
    本文实例为大家分享了Swift实现简单计算器的具体代码,供大家参考,具体内容如下 使用Storyboard 快速而又方便的进行控件的布局,功能操作简单的进行一些运算; 代码实现 //...
    99+
    2024-04-02
  • Android Studio制作一个简单的计算器APP
    虽然现在我们日常生活中很少用到计算器,但是第一次尝试在Android Studio上做一个计算器 程序设计步骤: (1)在布局文件中声明编辑文件框EditText,按钮Button等组件。 (2)在MainActivity中获取组件实例。 ...
    99+
    2023-10-03
    android android studio
  • QT+OpenGL实现简单图形的绘制
    继承于QOpenGLWindow,描画出来。新建类myopengl,头文件如下: #ifndef MYOPENGL_H #define MYOPENGL_H #include &...
    99+
    2022-12-28
    QT OpenGL绘制图形 QT 绘制图形 OpenGL绘制图形 QT OpenGL
  • Android studio实现简单计算器
    本文实例为大家分享了Android studio实现简单计算器的具体代码,供大家参考,具体内容如下 需求分析 在Android studio中设计并实现一个简单的计算器,实现连...
    99+
    2022-06-06
    Android Studio studio Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作