QT做的计算器点按钮没反应

cnbaixf 2018-03-25 12:34:24

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QDialog>
#include<QPushButton>
#include<QLineEdit>
#include<QString>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
QPushButton* pushButton;
QPushButton* pushButton_2;
QPushButton* pushButton_3;
QPushButton* pushButton_4;
QPushButton* pushButton_5;
QPushButton* pushButton_6;
QPushButton* pushButton_7;
QPushButton* pushButton_8;
QPushButton* pushButton_9;
QPushButton* pushButton_10;
QPushButton* pushButton_11;
QPushButton* pushButton_12;
QPushButton* pushButton_13;
QPushButton* pushButton_14;
QPushButton* pushButton_15;
QPushButton* pushButton_16;

QLineEdit* lineEdit;

float num1,num2,result;//数1、数2、结果
QString S;
char sign;
int mark;//点击过运算符号,mark=1,默认是0

private slots:
void on_pushButton_clicked();

void on_pushButton_2_clicked();

void on_pushButton_3_clicked();

void on_pushButton_4_clicked();

void on_pushButton_5_clicked();

void on_pushButton_6_clicked();

void on_pushButton_7_clicked();

void on_pushButton_8_clicked();

void on_pushButton_9_clicked();

void on_pushButton_10_clicked();

void on_pushButton_11_clicked();

void on_pushButton_12_clicked();

void on_pushButton_13_clicked();

void on_pushButton_14_clicked();

void on_pushButton_15_clicked();

void on_pushButton_16_clicked();

private:
Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H





#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//初始化变量
num1=0.0;
num2=0.0;
result=0.0;
S="";
mark=0;
//初始化部件对象指针
pushButton=new QPushButton("1");
pushButton_2=new QPushButton("2");
pushButton_3=new QPushButton("3");
pushButton_4=new QPushButton("4");
pushButton_5=new QPushButton("5");
pushButton_6=new QPushButton("6");
pushButton_7=new QPushButton("7");
pushButton_8=new QPushButton("8");
pushButton_9=new QPushButton("9");
pushButton_10=new QPushButton("0");
pushButton_11=new QPushButton("+");
pushButton_12=new QPushButton("-");
pushButton_13=new QPushButton("*");
pushButton_14=new QPushButton("/");
pushButton_15=new QPushButton("=");
pushButton_16=new QPushButton("C");

lineEdit=new QLineEdit("S");
lineEdit->setText(S);

//实现连接函数
connect(pushButton,SIGNAL(clicked()),this,SLOT(on_pushButton_clicked()));
connect(pushButton_2,SIGNAL(clicked()),this,SLOT(on_pushButton_2_clicked()));
connect(pushButton_3,SIGNAL(clicked()),this,SLOT(on_pushButton_3_clicked()));
connect(pushButton_4,SIGNAL(clicked()),this,SLOT(on_pushButton_4_clicked()));
connect(pushButton_5,SIGNAL(clicked()),this,SLOT(on_pushButton_5_clicked()));
connect(pushButton_6,SIGNAL(clicked()),this,SLOT(on_pushButton_6_clicked()));
connect(pushButton_7,SIGNAL(clicked()),this,SLOT(on_pushButton_7_clicked()));
connect(pushButton_8,SIGNAL(clicked()),this,SLOT(on_pushButton_8_clicked()));
connect(pushButton_9,SIGNAL(clicked()),this,SLOT(on_pushButton_9_clicked()));
connect(pushButton_10,SIGNAL(clicked()),this,SLOT(on_pushButton_10_clicked()));
connect(pushButton_11,SIGNAL(clicked()),this,SLOT(on_pushButton_11_clicked()));
connect(pushButton_12,SIGNAL(clicked()),this,SLOT(on_pushButton_12_clicked()));
connect(pushButton_13,SIGNAL(clicked()),this,SLOT(on_pushButton_13_clicked()));
connect(pushButton_14,SIGNAL(clicked()),this,SLOT(on_pushButton_14_clicked()));
connect(pushButton_15,SIGNAL(clicked()),this,SLOT(on_pushButton_15_clicked()));
connect(pushButton_16,SIGNAL(clicked()),this,SLOT(on_pushButton_16_clicked()));
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_pushButton_clicked()
{
S+="1";
lineEdit->setText(S);
if(mark==0)
num1=num1*10+1;
else
num2=num2*10+1;
}

void MainWindow::on_pushButton_2_clicked()
{
S+="2";
lineEdit->setText(S);
if(mark==0)
num1=num1*10+2;
else
num2=num2*10+2;
}

void MainWindow::on_pushButton_3_clicked()
{
S+="3";
lineEdit->setText(S);
if(mark==0)
num1=num1*10+3;
else
num2=num2*10+3;
}

void MainWindow::on_pushButton_4_clicked()
{
S+="4";
lineEdit->setText(S);
if(mark==0)
num1=num1*10+4;
else
num2=num2*10+4;
}

void MainWindow::on_pushButton_5_clicked()
{
S+="5";
lineEdit->setText(S);
if(mark==0)
num1=num1*10+5;
else
num2=num2*10+5;
}

void MainWindow::on_pushButton_6_clicked()
{
S+="6";
lineEdit->setText(S);
if(mark==0)
num1=num1*10+6;
else
num2=num2*10+6;
}

void MainWindow::on_pushButton_7_clicked()
{
S+="7";
lineEdit->setText(S);
if(mark==0)
num1=num1*10+7;
else
num2=num2*10+7;
}

void MainWindow::on_pushButton_8_clicked()
{
S+="8";
lineEdit->setText(S);
if(mark==0)
num1=num1*10+8;
else
num2=num2*10+8;
}

void MainWindow::on_pushButton_9_clicked()
{
S+="9";
lineEdit->setText(S);
if(mark==0)
num1=num1*10+9;
else
num2=num2*10+9;
}

void MainWindow::on_pushButton_10_clicked()
{
S+="0";
lineEdit->setText(S);
if(mark==0)
num1=num1*10;
else
num2=num2*10;
}

void MainWindow::on_pushButton_11_clicked()
{
S+="+";
lineEdit->setText(S);
sign='+';
mark=1;
}

void MainWindow::on_pushButton_12_clicked()
{
S+="-";
lineEdit->setText(S);
sign='-';
mark=1;
}

void MainWindow::on_pushButton_13_clicked()
{
S+="*";
lineEdit->setText(S);
sign='*';
mark=1;
}

void MainWindow::on_pushButton_14_clicked()
{
S+="/";
lineEdit->setText(S);
sign='/';
mark=1;
}

void MainWindow::on_pushButton_15_clicked()
{
S+="=";
switch (sign) {
case '+':
result=num1+num2;
break;
case '-':
result=num1-num2;
break;
case '*':
result=num1*num2;
break;
case '/':
result=num1/num2;
break;
default:
break;
}
S+=QString("%1").arg(result);//float转QString
lineEdit->setText(S);
}

void MainWindow::on_pushButton_16_clicked()
{
S="";
lineEdit->setText(S);
num1=0;
num2=0;
result=0;
mark=0;
}





有大神可以指点下吗
...全文
624 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnbaixf 2018-03-28
  • 打赏
  • 举报
回复
引用 4 楼 hefashion0190 的回复:
[quote=引用 3 楼 hefashion0190 的回复:] pushButton*对象绑定的不是ui上的对象
类似于这样
pushButton = ui->pushButton;
pushButton2 = ui->pushButton2;
[/quote] 感谢大神
FoolCarpe 2018-03-27
  • 打赏
  • 举报
回复
引用 3 楼 hefashion0190 的回复:
pushButton*对象绑定的不是ui上的对象
类似于这样
pushButton = ui->pushButton;
pushButton2 = ui->pushButton2;
FoolCarpe 2018-03-27
  • 打赏
  • 举报
回复
pushButton*对象绑定的不是ui上的对象
cnbaixf 2018-03-26
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
百度搜相关关键字。
如果百度能搜到原因我怎么会来这问
赵4老师 2018-03-25
  • 打赏
  • 举报
回复
百度搜相关关键字。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧