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. 浅析@Deprecated,调用方法时出现横线划掉样式

    Deprecated 这个注释是一个标记注释.所谓标记注释,就是在源程序中加入这个标记后,并不影响程序的编译,但有时编译器会显示一些警告信息. 那么Deprecated注释是什么意思呢?如果你经常使用 ...

  2. JavaScript基础:DOM操作详解

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 JavaScript的组成 JavaScript基础分为三个部分: ...

  3. mysql 两个时间段的差,可以是秒,天,星期,月份,年...

    SELECT TIMESTAMPDIFF(SECOND, now(), "2012-11-11 00:00:00") 语法为:TIMESTAMPDIFF(unit,datetime ...

  4. mysql alter总结

    mysql alter总结(转载) 1:删除列 ALTER TABLE [表名字] DROP [列名称] 2:增加列 ALTER TABLE [表名字] ADD [列名称] INT NOT NULL  ...

  5. mysql 性能优化常见命令

    mysql 性能优化常见命令: 一: 当发现mysql程序运行缓慢时,在排除sql主机问题之后,可以尝试在schema,table,和sql上进一步进行考查: 1:mysql> show ful ...

  6. linux_软件安装策略和升级策略

    运维3大原则:可靠.稳定.简单 尝试新的软件,一切都是未知的,也就是说不可靠,不可预测也就意味的不稳定,解决问题,通过百度和谷歌工具有可能找不到解决方法,只能通过官方文档来解决问题,大大增加了排错时间 ...

  7. 转-python中的闭包

    出处:http://www.cnblogs.com/ma6174/archive/2013/04/15/3022548.html 记录下 简单说,闭包就是根据不同的配置信息得到不同的结果 再来看看专业 ...

  8. java1.8--改进的接口

    关于接口,每天的编码都在写,就不多说了.这里对比下接口,抽象类,类3者的关系: 1),接口是一种规范,就是告诉外界这个东东可以做什么. 2),抽象类是一种模板,就是告诉外界这个东西的一部分公共功能. ...

  9. 比较Maven和Ant

    从今天开始,整理maven一系列. Maven 它是什么? 如何回答这个问题要看你怎么看这个问题. 绝大部分Maven用户都称Maven是一个"构建工具":一个用来把源代码构建成可 ...

  10. 日历插件——laydate.js

    laydate是一款很好用的日历控件,兼容了包括IE6在内的所有主流浏览器,默认有三种皮肤,如需其它皮肤可去官网下载http://www.layui.com/laydate/  一.核心方法:layd ...