【Qt】实现一个计算器
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】实现一个计算器相关推荐
- linux qt小型计算器,Qt实现一个简单的计算器
Qt实现一个简单的计算器 作者:hackett 微信公众号:加班猿 一.UI界面版 运行效果:输入num1和num2选择+-*/点击计算即可 UI界面设计: 3个lineEdit(lineEditNu ...
- 使用Qt做一个简单计算器
title: Calculator date: 2022-09-04 11:10:12 tags: [Qt, 应用, C++] typora-root-url: Calculator 使用Qt做一个简 ...
- QT实现一个简单计算器
QT实现一个简单计算器 学生一枚,水平有限,如有问题,还望指正 第一步 通过QT设计师绘制出界面图形,界面大致如下: 第二步 将保存的.ui文件转换为头文件,以便于自己创建的对象对其继承和使用 uic ...
- QT学习 之 计算器的实现
前些天刚开始接触QT,对QT的开发环境有了些许了解.觉得用QT写一个软件还是很方便的.当然由于0基础遇到的问题也不少. 1.对于QT学习方法还在探究之中,目前想到的,认为比较有效的方法就是先看教学视频 ...
- QT,C++多项式计算器—version3(厌倦CMD黑框框的走起!)
很激动! 在乔帮主的要求下,我再次写一次多项式计算器.(对了,这里用的是QT5) QT的下载在download 或者一般的官网上都有(QT 只是一个加载库!请各位初学者不要害怕!但是下好了QT的软件之 ...
- QT之创建计算器(五)
上篇博客说我们要创建一个计算器,那么下面我们来创建一个计算器的界面,这节只是简单的开发一个计算器的界面. 实现的是一个文本框只能显示,不能输入的,界面大小固定的计算器.那么在开发之前,我们的的QT知识 ...
- pycharm + PyQt + QT Designer制作计算器
1: 打开Designer,建立ui文件 选择所有按键,然后点击右键选择 layout–>layout in a Grid 对这些按键进行网格布局 将文件保存为mainwindow.ui 2: ...
- Qt 项目:windows计算器
项目描述 实现Windows计算器 QT 实现windows计算器 功能: 计算一个表达式,将它存储在右边历史记录框中 求一个数的二进制 求一个数的平方 退格键 清空历史记录和表达式框 将第一个数变成 ...
- input点击事件不能用_用js简单写一个计算器
嗨,大家好,今天给大家带来的是一个计算器 首先要知道我们常用的计算器都有哪些按键,有'0~9','+' ,' -' , '*', '/',还有'=' 和'.',基本是这些按键,然后我们去创建一些按键. ...
最新文章
- rundeck入门-初步操作
- 计算机课组会议讲话,在计算机部教师会议上的讲话
- 常用网络命令使用技巧详解续编1
- why my pricing procedure is not determined in QHD 504
- linux系统shell知识点,Linux 系统中shell知识点说明和常用的帮助命令简单介绍 | IT工程师的生活足迹...
- java圆形泳池问题_Java实现 LeetCode 778 水位上升的泳池中游泳(二分+DFS)
- linux中兴上网客户端,中兴新支点N-Print,简单高效Linux桌面操作系统网络打印方案...
- Install Anjuta
- MySQL查年龄18到22的信息_Mysql查询SQL相关总结(根据生日以及身份证查询年龄以及性别区域等)...
- java导出word图片格式_Java 导出带图片和列表的 Word
- Qt读写Excel--QXlsx合并单元格、文本对齐7
- 一种使用 PNP 作为开关管点亮LED的奇怪做法
- 冰蝎(Behinder)双击无法打开
- Java实现 LeetCode 48 旋转图像
- ios系统软件迁移到安卓_教你把ios系统移植到安卓手机
- 【推免】笔试+机试+面试 准备
- 强大的多媒体播放器:射手影音播放器SPlayer for Mac
- Ymir平台部署安装
- 计算机图像处理相关论文,计算机图像处理技术论文
- 取整函数access_ACCESS基本函数大全.doc