این کدهایی هست که من نوشتم (فایلی به اسم calculator.cpp)
"calculator.h"
#include "ui_calculator.h"
#include "BigInt.hpp"
calculator::calculator(QWidget *parent)
: QWidget(parent)
, ui(new Ui::calculator)
{
ui->setupUi(this);
action=Action_Type::nothing;
connect(ui->Button_0,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"0");});
connect(ui->Button_1,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"1");});
connect(ui->Button_2,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"2");});
connect(ui->Button_3,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"3");});
connect(ui->Button_4,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"4");});
connect(ui->Button_5,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"5");});
connect(ui->Button_6,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"6");});
connect(ui->Button_7,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"7");});
connect(ui->Button_8,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"8");});
connect(ui->Button_9,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+"9");});
connect(ui->Button_dot,&QPushButton::clicked,this,[this](){ui->display->setText(ui->display->text()+".");});
connect(ui->Button_add,SIGNAL(clicked(bool)),this,SLOT(onAdd()));
connect(ui->Button_div,SIGNAL(clicked(bool)),this,SLOT(onDiv()));
connect(ui->Button_sub,SIGNAL(clicked(bool)),this,SLOT(onSub()));
connect(ui->Button_mul,SIGNAL(clicked(bool)),this,SLOT(onMul()));
connect(ui->Button_result,SIGNAL(clicked(bool)),this,SLOT(onResult()));
connect(ui->Button_clean,SIGNAL(clicked(bool)),this,SLOT(onClean()));
connect(ui->Button_exit,SIGNAL(clicked(bool)),this,SLOT(onExit()));
}
calculator::~calculator()
{
delete ui;
}
void calculator::onAdd()
{
if(ui->display->text().isEmpty())
return;
previousVal=ui->display->text().toDouble();
action=Action_Type::add;
ui->resultdisplay->setText(ui->display->text()+"+");
ui->display->clear();
}
void calculator::onSub()
{
if(ui->display->text().isEmpty())
return;
previousVal=ui->display->text().toDouble();
action=Action_Type::sub;
ui->resultdisplay->setText(ui->display->text()+"-");
ui->display->clear();
}
void calculator::onMul()
{
if(ui->display->text().isEmpty())
return;
previousVal=ui->display->text().toDouble();
action=Action_Type::mul;
ui->resultdisplay->setText(ui->display->text()+"*");
ui->display->clear();
}
void calculator::onDiv()
{
if(ui->display->text().isEmpty())
return;
previousVal=ui->display->text().toDouble();
action=Action_Type::div;
ui->resultdisplay->setText(ui->display->text()+"/");
ui->display->clear();
}
void calculator::onResult()
{
if(ui->display->text().isEmpty())
return;
double currentVal=ui->display->text().toDouble();
if(action!=Action_Type::nothing)
{
switch (action) {
case Action_Type::add:
ui->resultdisplay->setText(ui->resultdisplay->text()+QString::number(currentVal)+"="+QString::number(previousVal + currentVal));
break;
case Action_Type::sub:
ui->resultdisplay->setText(ui->resultdisplay->text()+QString::number(currentVal)+"="+QString::number(previousVal - currentVal));
break;
case Action_Type::mul:
ui->resultdisplay->setText(ui->resultdisplay->text()+QString::number(currentVal)+"="+QString::number(previousVal * currentVal));
break;
case Action_Type::div:
ui->resultdisplay->setText(ui->resultdisplay->text()+QString::number(currentVal)+"="+QString::number(previousVal / currentVal));
break;
default:
break;
}
ui->display->clear();
action=Action_Type::nothing;
}
}
void calculator::onClean()
{
if(ui->display->text().isEmpty())
return;
previousVal=ui->display->text().toDouble();
action=Action_Type::clean;
// ui->resultdisplay->setText(ui->display->text()+"");
ui->display->clear();
}
void calculator::onExit()
{
calculator::close();
بنظرتون مشکل از کجاست