Qt实现的简单计算器

Qt实现简易计算器

QT-简易计算器实现(详解)



























代码

最下方,有图片上的所有代码







Calculator.h:

#ifndef CALCULATOR_H
#define CALCULATOR_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class Calculator; }
QT_END_NAMESPACEclass Calculator : public QMainWindow
{Q_OBJECTpublic:Calculator(QWidget *parent = nullptr);~Calculator();private:Ui::Calculator *ui;
private slots:void NumPressed();void MathButtonPressed();void EqualButton();void ChangeNumberSign();};
#endif // CALCULATOR_H

Calculator.cpp:

#include "calculator.h"
#include "ui_calculator.h"double calcVal = 0.0;
bool divTrigger = false;
bool multTrigger = false;
bool addTrigger = false;
bool subTrigger = false;Calculator::Calculator(QWidget *parent): QMainWindow(parent), ui(new Ui::Calculator)
{ui->setupUi(this);ui->Display->setText(QString::number(calcVal));QPushButton *numButtons[10];for(int i=0;i<10;i++){QString buttonName = "Button" + QString::number((i));numButtons[i] = Calculator::findChild<QPushButton *>(buttonName);connect(numButtons[i],SIGNAL(released()),this,SLOT(NumPressed()));}connect(ui->Add,SIGNAL(released()),this,SLOT(MathButtonPressed()));connect(ui->Subtract,SIGNAL(released()),this,SLOT(MathButtonPressed()));connect(ui->Multiply,SIGNAL(released()),this,SLOT(MathButtonPressed()));connect(ui->Divide,SIGNAL(released()),this,SLOT(MathButtonPressed()));connect(ui->Equals,SIGNAL(released()),this,SLOT(EqualButton()));connect(ui->ChangeSign,SIGNAL(released()),this,SLOT(ChangeNumberSign()));}Calculator::~Calculator()
{delete ui;
}void Calculator::NumPressed()
{QPushButton *button = (QPushButton *)sender();QString butval = button->text();QString displayVal = ui->Display->text();if((displayVal.toDouble() == 0)||(displayVal.toDouble() == 0.0)){ui->Display->setText(butval);}else{QString newVal = displayVal+butval;double dblNewVal = newVal.toDouble();ui->Display->setText(QString::number(dblNewVal,'g',16));}
}void Calculator::MathButtonPressed()
{divTrigger = false;multTrigger = false;addTrigger = false;subTrigger = false;QString displayVal = ui->Display->text();calcVal = displayVal.toDouble();QPushButton *button = (QPushButton *)sender();QString butVal = button->text();if(QString::compare(butVal,"/",Qt::CaseInsensitive) == 0){divTrigger = true;}else if(QString::compare(butVal,"*",Qt::CaseInsensitive) == 0){multTrigger = true;}else if(QString::compare(butVal,"+",Qt::CaseInsensitive) == 0){addTrigger = true;}else if(QString::compare(butVal,"-",Qt::CaseInsensitive) == 0){subTrigger = true;}ui->Display->setText("");}void Calculator::EqualButton()
{double solution = 0.0;QString displayVal = ui->Display->text();double dblDisplayVal = displayVal.toDouble();if(addTrigger || subTrigger || multTrigger || divTrigger){if(addTrigger){solution = calcVal + dblDisplayVal;}else if(subTrigger){solution = calcVal - dblDisplayVal;}else if(multTrigger){solution = calcVal * dblDisplayVal;}else if(divTrigger){solution = calcVal / dblDisplayVal;}}ui->Display->setText(QString::number(solution));
}void Calculator::ChangeNumberSign()
{QString displayVal = ui->Display->text();QRegExp reg("[-]?[0-9.]*");if(reg.exactMatch(displayVal)){double dblDisplayVal = displayVal.toDouble();double dblDisplayValSign = -1*dblDisplayVal;ui->Display->setText(QString::number(dblDisplayValSign));}
}

【Qt】实现一个计算器相关推荐

  1. linux qt小型计算器,Qt实现一个简单的计算器

    Qt实现一个简单的计算器 作者:hackett 微信公众号:加班猿 一.UI界面版 运行效果:输入num1和num2选择+-*/点击计算即可 UI界面设计: 3个lineEdit(lineEditNu ...

  2. 使用Qt做一个简单计算器

    title: Calculator date: 2022-09-04 11:10:12 tags: [Qt, 应用, C++] typora-root-url: Calculator 使用Qt做一个简 ...

  3. QT实现一个简单计算器

    QT实现一个简单计算器 学生一枚,水平有限,如有问题,还望指正 第一步 通过QT设计师绘制出界面图形,界面大致如下: 第二步 将保存的.ui文件转换为头文件,以便于自己创建的对象对其继承和使用 uic ...

  4. QT学习 之 计算器的实现

    前些天刚开始接触QT,对QT的开发环境有了些许了解.觉得用QT写一个软件还是很方便的.当然由于0基础遇到的问题也不少. 1.对于QT学习方法还在探究之中,目前想到的,认为比较有效的方法就是先看教学视频 ...

  5. QT,C++多项式计算器—version3(厌倦CMD黑框框的走起!)

    很激动! 在乔帮主的要求下,我再次写一次多项式计算器.(对了,这里用的是QT5) QT的下载在download 或者一般的官网上都有(QT 只是一个加载库!请各位初学者不要害怕!但是下好了QT的软件之 ...

  6. QT之创建计算器(五)

    上篇博客说我们要创建一个计算器,那么下面我们来创建一个计算器的界面,这节只是简单的开发一个计算器的界面. 实现的是一个文本框只能显示,不能输入的,界面大小固定的计算器.那么在开发之前,我们的的QT知识 ...

  7. pycharm + PyQt + QT Designer制作计算器

    1: 打开Designer,建立ui文件 选择所有按键,然后点击右键选择 layout–>layout in a Grid 对这些按键进行网格布局 将文件保存为mainwindow.ui 2: ...

  8. Qt 项目:windows计算器

    项目描述 实现Windows计算器 QT 实现windows计算器 功能: 计算一个表达式,将它存储在右边历史记录框中 求一个数的二进制 求一个数的平方 退格键 清空历史记录和表达式框 将第一个数变成 ...

  9. input点击事件不能用_用js简单写一个计算器

    嗨,大家好,今天给大家带来的是一个计算器 首先要知道我们常用的计算器都有哪些按键,有'0~9','+' ,' -' , '*', '/',还有'=' 和'.',基本是这些按键,然后我们去创建一些按键. ...

最新文章

  1. rundeck入门-初步操作
  2. 计算机课组会议讲话,在计算机部教师会议上的讲话
  3. 常用网络命令使用技巧详解续编1
  4. why my pricing procedure is not determined in QHD 504
  5. linux系统shell知识点,Linux 系统中shell知识点说明和常用的帮助命令简单介绍 | IT工程师的生活足迹...
  6. java圆形泳池问题_Java实现 LeetCode 778 水位上升的泳池中游泳(二分+DFS)
  7. linux中兴上网客户端,中兴新支点N-Print,简单高效Linux桌面操作系统网络打印方案...
  8. Install Anjuta
  9. MySQL查年龄18到22的信息_Mysql查询SQL相关总结(根据生日以及身份证查询年龄以及性别区域等)...
  10. java导出word图片格式_Java 导出带图片和列表的 Word
  11. Qt读写Excel--QXlsx合并单元格、文本对齐7
  12. 一种使用 PNP 作为开关管点亮LED的奇怪做法
  13. 冰蝎(Behinder)双击无法打开
  14. Java实现 LeetCode 48 旋转图像
  15. ios系统软件迁移到安卓_教你把ios系统移植到安卓手机
  16. 【推免】笔试+机试+面试 准备
  17. 强大的多媒体播放器:射手影音播放器SPlayer for Mac
  18. Ymir平台部署安装
  19. 计算机图像处理相关论文,计算机图像处理技术论文
  20. 取整函数access_ACCESS基本函数大全.doc

热门文章

  1. XCode9的新变化
  2. 004-PBR历史和概念
  3. 莫烦pytorch CNN卷积神经网络
  4. 计算机二级WPS 选择题(模拟和解析二)
  5. 【C语言】- 通讯录实现详解
  6. 从开源Sakai出发 构建国内远程教育系统
  7. 六七、MySQL常用语句
  8. F2FS的删除文件操作流程
  9. java 推拉流_libsrt+ffmpeg推拉流(一)
  10. PMP备考-错题集(第6版)