qt实现一个简单的计算器
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实现一个简单的计算器的更多相关文章
- 使用qt制作一个简单的计算器
前言:今天使用qt制作了一个很简单的计算器,觉得挺有意思的,所以在这里跟大家分享一下. 这里先跟大家说说使用到的函数: 一.槽连接函数 connect(信号发送者,发送的信号,信号接收者,信号接收者的 ...
- JS实现一个简单的计算器
使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除.效果如上: 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择 ...
- Android下实现一个简单的计算器源码
下面的内容是关于Android下实现一个简单的计算器的内容. import android.app.Activity; import android.os.Bundle;import android. ...
- JS事件 编程练习-自制计算器 使用JS完成一个简单的计算器功能。实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除。
编程练习 使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除. 提示:获取元素的值设置和获取方法为:例:赋值:document.getElement ...
- 使用QT实现一个简单的登陆对话框(纯代码实现C++)
使用QT实现一个简单的登陆对话框(纯代码实现C++) 效果展示 使用的QT控件 控件 描述 QLable 标签 QLineEdit 行文本框 QPushButton 按扭 QHBoxLayout 水平 ...
- 用JavaScript写一个简单的计算器
本文使用js实现了一个简单的加.减.乘.除计算器. 以下是css部分代码: *{ padding:0; margin:0; color: #424242; } .outer{ width:300px; ...
- Qt实现一个简单的TextEditor
使用QT实现简单的TextEditor: 首先在窗口添加部件TextEditor,并设置中文字符 MainWindow::MainWindow(QWidget *parent) : QMainWind ...
- 用c++写一个简单的计算器程序
// 050305.cpp : 定义控制台应用程序的入口点.// // 050304.cpp : 定义控制台应用程序的入口点.////四则运算#include "stdafx.h" ...
- Python 设计一个简单的计算器
设计目标 实现加减乘除及拓号优先级解析 用户输入'1 - 2 * ( (6-3 +(-5/5)*(9-2*3/3 + 7/3*7/4*12 +10 * 5/5 )) - (-4*3)/ (12-3*2 ...
随机推荐
- 《图解http》知识点笔记
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica } p.p2 { margin: 0.0px 0.0px 0.0px 0. ...
- NYOJ 2356 哈希计划(模拟)
题目链接: http://acm.nyist.me/JudgeOnline/problem.php?id=2356 题目描述 众所周知,LLM的算法之所以菜,就是因为成天打游戏,最近LLM突然想玩&l ...
- win10安装配置jdk的环境变量
换了个硬盘,用上了win10,发现win10安装好jdk之后,配置环境变量这个相对于win7和xp还是有那么一丢丢区别的,趁着夜色,随笔一记. 1.安装jdk之后,或者也可以用之前安装好的文件夹,先记 ...
- github中删除项目
- 解Linux SSH命令大全,新手必看SSH命令
下面介绍一些基本的常用的Linux SSH命令,都是一些很简单的Linux SSH命令,新手掌握了这几个,一般管理一般的vps或者linux主机就可以了! 我们的教程介绍了putty的使用方法 ...
- HTML <a href >标签的target属性
规定在何处打开链接文档. _blank 在新窗口中打开被链接文档 _parent 在父框架集中打开被链接文档 _self 默认.在相同的框架中打开被链接文档 _top 在整 ...
- 工厂模式Java
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...
- Django文件上传三种方式以及简单预览功能
主要内容: 一.文件长传的三种方式 二.简单预览功能实现 一.form表单上传 1.页面代码 <!DOCTYPE html> <html lang="en"> ...
- 03 整合IDEA+Maven+SSM框架的高并发的商品秒杀项目之web层
Github:https://github.com/nnngu 项目源代码:https://github.com/nnngu/nguSeckill 前端交互流程设计 对于一个系统,需要产品经理.前端工 ...
- VM安装Ubuntu问题合集(无法联网、中文界面设置、中文输入法etc)
经常使用VM安装Ubuntu,安装系统的步骤跟着系统提示一步步下来就行,但总是遇到一些问题,这里记录一下常遇到的问题,以及自己解决的办法: 1.无法联网: 状况:Ubuntu不能联网,联网地方一直在闪 ...