#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mycal.h"
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
init();
ui->setupUi(this);
// connect(ui->equal, SIGNAL(clicked()), this, SLOT(on_equal_clicked()));
ui->input->setAlignment(Qt::AlignRight); //输入框右对齐
ui->formula->setAlignment(Qt::AlignRight); //表达式框右对齐
ui->histoyText->setAlignment(Qt::AlignRight); //历史记录框右对齐
ui->input->setText("0"); //输入框初始值显示0
ui->histoyText->setText("尚无历史记录"); //历史记录初始值设置
clearall = false; //清除标志
eq = false; //是否有历史记录
// connect(ui->equal, SIGNAL(clicked()), this, SLOT(on_equal_clicked()));
// change = new history();
// connect(this,SIGNAL(sendStr(QString)),change,SLOT(clearall1(QString)));
// connect(this,SIGNAL(sendStr1(QString)),change,SLOT(insert1(QString)));
// connect(this,SIGNAL(sendStr2(QString)),change,SLOT(changeline(QString)));
// connect(this->ui->equal,SIGNAL(sendStr2(QString)),change,SLOT(insert1(QString)));
// emit sendStr2(ui->histoyText->toPlainText());
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::init(){
isFold=1;
// ui->btn_fold->setStyleSheet("QPushButton {"
// "background-color: white; /* 设置背景颜色 */"
// "color: white; /* 设置文本颜色 */"
// "border: none; /* 移除边框 */"
// "border-radius: 20px; /* 设置圆角 */"
// "padding: 10px 20px; /* 设置内边距 */"
// "}"
// "QPushButton:hover {"
// "background-color: : white; /* 鼠标悬停时的背景颜色 */"
// "}");
}
void MainWindow::on_one_clicked()
{
if(ui->input->text() == "0")
{
ui->input->clear();
}
QString s = ui->formula->text();
int n = s.length();
if(n != 0 && s[n - 1] == ')') //数字前不能出现右括号
{
QMessageBox::information(NULL, "错误","数字前不能为右括号!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
ui->input->setText(ui->input->text()+"1");
}
void MainWindow::on_two_clicked()
{
if(ui->input->text() == "0")
{
ui->input->clear();
}
QString s = ui->formula->text();
int n = s.length();
if(n != 0 && s[n - 1] == ')') //数字前不能出现右括号
{
QMessageBox::information(NULL, "错误","数字前不能为右括号!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
ui->input->setText(ui->input->text()+"2");
}
void MainWindow::on_three_clicked()
{
if(ui->input->text() == "0")
{
ui->input->clear();
}
QString s = ui->formula->text();
int n = s.length();
if(n != 0 && s[n - 1] == ')') //数字前不能出现右括号
{
QMessageBox::information(NULL, "错误","数字前不能为右括号!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
ui->input->setText(ui->input->text()+"3");
}
void MainWindow::on_four_clicked()
{
if(ui->input->text() == "0")
{
ui->input->clear();
}
QString s = ui->formula->text();
int n = s.length();
if(n != 0 && s[n - 1] == ')') //数字前不能出现右括号
{
QMessageBox::information(NULL, "错误","数字前不能为右括号!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
ui->input->setText(ui->input->text()+"4");
}
void MainWindow::on_five_clicked()
{
if(ui->input->text() == "0")
{
ui->input->clear();
}
QString s = ui->formula->text();
int n = s.length();
if(n != 0 && s[n - 1] == ')') //数字前不能出现右括号
{
QMessageBox::information(NULL, "错误","数字前不能为右括号!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
ui->input->setText(ui->input->text()+"5");
}
void MainWindow::on_six_clicked()
{
if(ui->input->text() == "0")
{
ui->input->clear();
}
QString s = ui->formula->text();
int n = s.length();
if(n != 0 && s[n - 1] == ')') //数字前不能出现右括号
{
QMessageBox::information(NULL, "错误","数字前不能为右括号!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
ui->input->setText(ui->input->text()+"6");
}
void MainWindow::on_seven_clicked()
{
if(ui->input->text() == "0")
{
ui->input->clear();
}
QString s = ui->formula->text();
int n = s.length();
if(n != 0 && s[n - 1] == ')') //数字前不能出现右括号
{
QMessageBox::information(NULL, "错误","数字前不能为右括号!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
ui->input->setText(ui->input->text()+"7");
}
void MainWindow::on_eight_clicked()
{
if(ui->input->text() == "0")
{
ui->input->clear();
}
QString s = ui->formula->text();
int n = s.length();
if(n != 0 && s[n - 1] == ')') //数字前不能出现右括号
{
QMessageBox::information(NULL, "错误","数字前不能为右括号!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
ui->input->setText(ui->input->text()+"8");
}
void MainWindow::on_nine_clicked()
{
if(ui->input->text() == "0")
{
ui->input->clear();
}
QString s = ui->formula->text();
int n = s.length();
if(n != 0 && s[n - 1] == ')') //数字前不能出现右括号
{
QMessageBox::information(NULL, "错误","数字前不能为右括号!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
ui->input->setText(ui->input->text()+"9");
}
void MainWindow::on_zero_clicked()
{
if(ui->input->text() == "0")
{
ui->input->clear();
}
QString s = ui->formula->text();
int n = s.length();
if(n != 0 && s[n - 1] == ')') //数字前不能出现右括号
{
QMessageBox::information(NULL, "错误","数字前不能为右括号!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
ui->input->setText(ui->input->text()+"0");
}
void MainWindow::on_pushButton_3_clicked() //小数点
{
QString s = ui->input->text(); //获取之前输入的数字
int n = s.length();
if(n != 0 && (s[n - 1] > '9' || s[n - 1] < '0')) //小数点前没有数字
{
QMessageBox::information(NULL, "错误","小数点前应输入数字!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
else if(n == 0) //不能小数点开头
{
QMessageBox::information(NULL, "错误","小数点前为空!",
QMessageBox::Yes,QMessageBox::Yes);
return;
}
for(int i = 0; i < n; ++ i)
{
if(s[i] == '.') //这个数字前是否还有小数点
{
QMessageBox::information(NULL, "错误","只能有一个小数点!",
QMessageBox::Yes,QMessageBox::Yes);
return;
break;
}
}
ui->input->setText(ui->input->text()+".");
}
void MainWindow::on_symbol_clicked() //正负号
{
if(ui->input->text()[0
没有合适的资源?快使用搜索试试~ 我知道了~
项目一:科学计算器源码
共13个文件
cpp:4个
h:3个
ui:2个
需积分: 0 0 下载量 133 浏览量
2023-10-07
23:33:57
上传
评论 1
收藏 21KB ZIP 举报
温馨提示
项目一:科学计算器源码
资源推荐
资源详情
资源评论
收起资源包目录
Mycalculator.zip (13个子文件)
Mycalculator
Mycalculator.pro 490B
history.h 1KB
Mycalculator.pro.user.19ebe9b.4.8-pre1 18KB
mainwindow.h 3KB
mainwindow.cpp 28KB
main.cpp 183B
mainwindow.ui.autosave 46KB
mainwindow.ui 46KB
mycal.cpp 6KB
history.cpp 1KB
Mycalculator.pro.user 19KB
mycal.h 686B
history.ui 3KB
共 13 条
- 1
资源评论
tarnishwyy
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功