1、计算器的界面如下图所示

dalog.cpp

#include "dialog.h"
#include "ui_dialog.h"
#include<QPushButton>
#include<QDebug>
#include<QtMath>
const char *a;
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
connect(ui->pushButton_58,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton_59,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton_53,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton_54,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton_55,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton_68,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton_69,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton_70,SIGNAL(clicked()),this,SLOT(showdigit()));
connect(ui->pushButton_71,SIGNAL(clicked()),this,SLOT(caculate()));
connect(ui->pushButton_72,SIGNAL(clicked()),this,SLOT(caculate()));
connect(ui->pushButton_4,SIGNAL(clicked()),this,SLOT(caculate()));
connect(ui->pushButton_37,SIGNAL(clicked()),this,SLOT(caculate()));
connect(ui->pushButton_57,SIGNAL(clicked()),this,SLOT(caculate()));
connect(ui->pushButton_56,SIGNAL(clicked()),this,SLOT(caculate()));
connect(ui->pushButton_62,SIGNAL(clicked()),this,SLOT(caculate()));
connect(ui->pushButton_61,SIGNAL(clicked()),this,SLOT(caculate()));
connect(ui->pushButton_60,SIGNAL(clicked()),this,SLOT(result()));
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::showdigit()
{ QString tmp = ui->label->text();
if(ui->pushButton_58==(QPushButton *)sender())
{
tmp +="";
ui->label->setText(tmp);
}
if(ui->pushButton_59==(QPushButton *)sender())
{
tmp +=".";
ui->label->setText(tmp);
}
if(ui->pushButton_53==(QPushButton *)sender())
{
tmp +="";
ui->label->setText(tmp);
}
if(ui->pushButton_54==(QPushButton *)sender())
{
tmp +="";
ui->label->setText(tmp);
}
if(ui->pushButton_55==(QPushButton *)sender())
{
tmp +="";
ui->label->setText(tmp);
}
if(ui->pushButton==(QPushButton *)sender())
{
tmp +="";
ui->label->setText(tmp);
}
if(ui->pushButton_2==(QPushButton *)sender())
{
tmp +="";
ui->label->setText(tmp);
}
if(ui->pushButton_3==(QPushButton *)sender())
{
tmp +="";
ui->label->setText(tmp);
}
if(ui->pushButton_68==(QPushButton *)sender())
{
tmp +="";
ui->label->setText(tmp);
}
if(ui->pushButton_69==(QPushButton *)sender())
{
tmp +="";
ui->label->setText(tmp);
}
if(ui->pushButton_70==(QPushButton *)sender())
{
tmp +="";
ui->label->setText(tmp);
} }
void Dialog::caculate()
{
QString tmp = ui->label->text();
d1 = tmp.toDouble();
if(ui->pushButton_71==(QPushButton *)sender())
{
a = "+";
}
if(ui->pushButton_72==(QPushButton *)sender())
{
a = "/";
}
if(ui->pushButton_4==(QPushButton *)sender())
{
a = "s";//sqrt
}
if(ui->pushButton_37==(QPushButton *)sender())
{
a = "-";
}
if(ui->pushButton_57==(QPushButton *)sender())
{
a = "x";//x^2
}
if(ui->pushButton_56==(QPushButton *)sender())
{
a = "*";
}
if(ui->pushButton_62==(QPushButton *)sender())
{
a = "%";
}
if(ui->pushButton_61==(QPushButton *)sender())
{
ui->label->setText(" ");
}
ui->label->setText(""); }
void Dialog::result()
{
//qDebug()<<"hello";
QString tmp = ui->label->text();
d2 = tmp.toDouble();
QString tmp1; if(a=="-")
{
tmp1.setNum((d1-d2));
ui->label->setText(tmp1);
}
if(a=="+")
{
tmp1.setNum((d1+d2));
ui->label->setText(tmp1);
}
if(a=="%")
{
tmp1.setNum(((int)d1%(int)d2));
ui->label->setText(tmp1);
}
if(a=="x")
{
tmp1.setNum((d1*d1));
ui->label->setText(tmp1);
}
if(a=="*")
{
tmp1.setNum((d1*d2));
ui->label->setText(tmp1);
}
if(a=="s")
{
tmp1.setNum((qSqrt(d1)));
ui->label->setText(tmp1);
}
if(a=="/")
{
tmp1.setNum((d1/d2));
ui->label->setText(tmp1);
}

main.cpp

#include "dialog.h"
#include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog w;
w.show(); return a.exec();
}

代码结构:

dialog.h

#ifndef DIALOG_H
#define DIALOG_H #include <QDialog> namespace Ui {
class Dialog;
} class Dialog : public QDialog
{
Q_OBJECT public:
Dialog(QWidget *parent = );
~Dialog(); private:
Ui::Dialog *ui; double d1,d2;
public slots:
void showdigit();
void caculate();
void result();
}; #endif // DIALOG_H

编译代码:

#-------------------------------------------------
#
# Project created by QtCreator --25T20::
#
#------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, ): QT += widgets TARGET = caculate
TEMPLATE = app SOURCES += main.cpp\
dialog.cpp HEADERS += dialog.h FORMS += dialog.ui

qt实现一个简单的计算器的更多相关文章

  1. 使用qt制作一个简单的计算器

    前言:今天使用qt制作了一个很简单的计算器,觉得挺有意思的,所以在这里跟大家分享一下. 这里先跟大家说说使用到的函数: 一.槽连接函数 connect(信号发送者,发送的信号,信号接收者,信号接收者的 ...

  2. JS实现一个简单的计算器

    使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除.效果如上: 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择 ...

  3. Android下实现一个简单的计算器源码

    下面的内容是关于Android下实现一个简单的计算器的内容. import android.app.Activity; import android.os.Bundle;import android. ...

  4. JS事件 编程练习-自制计算器 使用JS完成一个简单的计算器功能。实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除。

    编程练习 使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除. 提示:获取元素的值设置和获取方法为:例:赋值:document.getElement ...

  5. 使用QT实现一个简单的登陆对话框(纯代码实现C++)

    使用QT实现一个简单的登陆对话框(纯代码实现C++) 效果展示 使用的QT控件 控件 描述 QLable 标签 QLineEdit 行文本框 QPushButton 按扭 QHBoxLayout 水平 ...

  6. 用JavaScript写一个简单的计算器

    本文使用js实现了一个简单的加.减.乘.除计算器. 以下是css部分代码: *{ padding:0; margin:0; color: #424242; } .outer{ width:300px; ...

  7. Qt实现一个简单的TextEditor

    使用QT实现简单的TextEditor: 首先在窗口添加部件TextEditor,并设置中文字符 MainWindow::MainWindow(QWidget *parent) : QMainWind ...

  8. 用c++写一个简单的计算器程序

    // 050305.cpp : 定义控制台应用程序的入口点.// // 050304.cpp : 定义控制台应用程序的入口点.////四则运算#include "stdafx.h" ...

  9. Python 设计一个简单的计算器

    设计目标 实现加减乘除及拓号优先级解析 用户输入'1 - 2 * ( (6-3 +(-5/5)*(9-2*3/3 + 7/3*7/4*12 +10 * 5/5 )) - (-4*3)/ (12-3*2 ...

随机推荐

  1. JavaScript八张思维导图—数组用法

    JS基本概念 JS操作符 JS基本语句 JS数组用法 Date用法 JS字符串用法 JS编程风格 JS编程实践 不知不觉做前端已经五年多了,无论是从最初的jQuery还是现在火热的Angular,Vu ...

  2. PHP UEditor富文本编辑器 显示 后端配置项没有正常加载,上传插件不能正常使用

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码... 问题描述 我的编辑器在本地测试的时候没问 ...

  3. dede:list及dede:arclist 按权重排序的方法

    有时我们需要做文章排名,比如指定第一名到第三名在前面,这样就用到这个权重排序方法.稍改下就可以完美支持.. dede:list 的方法 1 找到"根目录\include\arc.listvi ...

  4. IIS  发布  dedecms  网站教程

    这里只是说明了配置 php 前后 iis 默认网站属性的变化,其实在配置完 php 后系统的环境变 量等也是发生了相应的变化了的, 这里就不一一列举了, 这些只有在你手动完成 php 的配置 之后才能 ...

  5. 在Vue项目使用quill-editor带样式编辑器(更改插入图片和视频)

    vue-quill-editor默认插入图片是直接将图片转为base64再放入内容中,如果图片比较大的话,富文本的内容就会很大. 插入视频是直接弹框输入URL地址,某些需求下我们需要让用户去本地选择自 ...

  6. DEDECMS去掉自动生成首页或栏目后面带的index.html

    Dede默认生成首页后,首页的链接后面会多出一个index.html.据官方说法这样有利于网站优化.但是这个index.html怎么看都不舒服,而且也不利于seo中主页url的统一.因为我的网站的ur ...

  7. pip install在Windows下报错解决

    报错: Traceback (most recent call last): File, in<module> load_entry_point('pip==1.4.1','console ...

  8. C语言 模2除法

    C语言中的模2除法: 模2除做法与算术除法类似,但每一位除(减)的结果不影响其它位,即不向上一位借位.所以实际上就是异或.然后再移位移位做下一位的模2减. 步骤如下: a.用除数对被除数最高n位做模2 ...

  9. c#套料程序设计

    上的套料基本上都没有源码,开放的sdk都没有,这让很多想做套料,但是又成本太高了. 另外,大部分套料都是c++实现的,效率高,本人尝试用c#做一个套料程序,发现效率也不低,当然会比c++差点. 以下是 ...

  10. junit4X系列--Builder、Request与JUnitCore

    原文出处:http://www.blogjava.net/DLevin/archive/2012/05/12/377957.html.感谢作者的无私分享. 初次用文字的方式记录读源码的过程,不知道怎么 ...