当前位置: 首页 > news >正文

QT-计算器

QT-计算器

  • 一、演示效果
  • 二、关键程序
  • 三、下载链接

一、演示效果

在这里插入图片描述

二、关键程序

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//基本設置ui->label->setStyleSheet("QLabel { background-color : white;font-size:40px ;}");ui->label->setAlignment(Qt::AlignRight|Qt::AlignCenter);this->setFixedSize(QSize(487,594));this->setWindowTitle(u8"计算器");//連接數字0-9connect(ui->btn_0,&QPushButton::clicked,[=](){QString str=ui->label->text();str.push_back("0");ui->label->setText(str);});connect(ui->btn_1,&QPushButton::clicked,[=](){QString str=ui->label->text()+"1";ui->label->setText(str);});connect(ui->btn_2,&QPushButton::clicked,[=](){QString str=ui->label->text()+"2";ui->label->setText(str);});connect(ui->btn_3,&QPushButton::clicked,[=](){QString str=ui->label->text()+"3";ui->label->setText(str);});connect(ui->btn_4,&QPushButton::clicked,[=](){QString str=ui->label->text()+"4";ui->label->setText(str);});connect(ui->btn_5,&QPushButton::clicked,[=](){QString str=ui->label->text()+"5";ui->label->setText(str);});connect(ui->btn_6,&QPushButton::clicked,[=](){QString str=ui->label->text()+"6";ui->label->setText(str);});connect(ui->btn_7,&QPushButton::clicked,[=](){QString str=ui->label->text()+"7";ui->label->setText(str);});connect(ui->btn_8,&QPushButton::clicked,[=](){QString str=ui->label->text()+"8";ui->label->setText(str);});connect(ui->btn_9,&QPushButton::clicked,[=](){QString str=ui->label->text()+"9";ui->label->setText(str);});//連接 .connect(ui->btn_point,&QPushButton::clicked,[=](){QString oldStr = ui->label->text();//限制只能有一個.int pointNum = oldStr.count(".");if(oldStr == ""||pointNum==1){return;}QString newStr=oldStr+".";ui->label->setText(newStr);});//連接<-connect(ui->btn_back,&QPushButton::clicked,[=](){QString oldStr = ui->label->text();if(oldStr == ""){return;}QString newStr = oldStr.remove(-1,1);ui->label->setText(newStr);});//連接 +connect(ui->btn_add,&QPushButton::clicked,[=](){if(ui->label->text()==""){return;}double value = ui->label->text().toDouble();Value val("+",value);this->allValueAndOperator.push_back(val);ui->label->setText("");});//連接 -connect(ui->btn_minus,&QPushButton::clicked,[=](){if(ui->label->text()==""){return;}double value = ui->label->text().toDouble();Value val("-",value);this->allValueAndOperator.push_back(val);ui->label->setText("");});//連接 *connect(ui->btn_multiply,&QPushButton::clicked,[=](){if(ui->label->text()==""){return;}double value = ui->label->text().toDouble();Value val("*",value);this->allValueAndOperator.push_back(val);ui->label->setText("");});//連接 /connect(ui->btn_divided,&QPushButton::clicked,[=](){if(ui->label->text()==""){return;}double value = ui->label->text().toDouble();Value val("/",value);this->allValueAndOperator.push_back(val);ui->label->setText("");});//連接 =connect(ui->btn_equals,&QPushButton::clicked,[=](){if(ui->label->text()==""){return;}double value = ui->label->text().toDouble();Value val("!",value);this->allValueAndOperator.push_back(val);QVector<Value>::iterator it = this->allValueAndOperator.begin();double res = it->value;for(;it!=this->allValueAndOperator.end();it++){double val = (it+1)->value;if(it->oper=="+"){res+=val;}else if(it->oper=="-"){res-=val;}else if(it->oper=="*"){res*=val;}else if(it->oper=="/"){res/=val;}if((it+1)->oper=="!")break;}ui->label->setNum(res);this->allValueAndOperator.clear();});//連接 clearconnect(ui->btn_clear,&QPushButton::clicked,[=](){this->allValueAndOperator.clear();ui->label->setText("");});//連接 退出connect(ui->btn_close,&QPushButton::clicked,[=](){this->close();});//連接 +/-connect(ui->btn_strains,&QPushButton::clicked,[=](){if(ui->label->text()==""){return;}double val=ui->label->text().toDouble();val=-val;ui->label->setText(QString::number(val));});}MainWindow::~MainWindow()
{delete ui;
}

三、下载链接

https://download.csdn.net/download/u013083044/89652298


http://www.mrgr.cn/news/2280.html

相关文章:

  • 数据结构(6_2_3)——十字链表法和多重领接表
  • 32位入门级MCU(ARM Cortex-M3内核)STM32F103系列
  • 计算机基础知识复习8.14
  • 4款AI 生成 PPT的工具,帮你赶上演示文稿的新趋势!
  • HTML静态网页成品作业(HTML+CSS)——花主题介绍网页设计制作(1个页面)
  • Tomcat 部署与优化
  • 探索生成式AI在文档处理中的应用:llm Whisperer
  • 数字媒体产业发展现状剖析,洞悉数字产业园的创新之举
  • HCIP | 三层架构
  • 如何在HTML中创建链接?什么是CSS定位?什么是CSS优化?
  • JavaScript语法基础之流程结构(顺序、选择、循环结构)
  • XXX【5】观察者模式
  • 你是如何克服编程学习中的挫折感的?(-@-^-0-)
  • 数学建模预测类—【多元线性回归】
  • C# 不一样的洗牌算法---Simd指令
  • 只用一个 HTML 元素可以写出多少形状?——伪元素篇(上)
  • 微服务架构
  • 网易云音乐崩了!冲上热搜第一
  • Swin-Transformer论文阅读
  • DDoS攻击导致服务器宕机的技术解析