QT实现一个简单计算器
学生一枚,水平有限,如有问题,还望指正
第一步
通过QT设计师绘制出界面图形,界面大致如下:
第二步
将保存的.ui文件转换为头文件,以便于自己创建的对象对其继承和使用
uic CalculatorDialog.ui -o ui_CalculatorDialog.h
第三步
创建自己的头文件CalculatorDialog.h和CalculatorDialog.cpp文件,以及main.cpp,具体实现代码如下,注释清晰
第四步
CalculatorDialog.h
#ifndef __CALCULATORDIALOG_H__
#define __CALCULATORDIALOG_H__
#include "ui_CalculatorDialog.h"
//自定义计算器窗口类,继承了父窗口,那么当前类也是一个父窗口
class CalculatorDialog:public QDialog,public Ui::CalculatorDialog{
Q_OBJECT
public:
//构造函数
CalculatorDialog(void);
//按钮点击信号对应的槽函数的内部实现函数
void sendLineEdit(QString str);
public slots:
//将按钮对应的数字和即将进行的计算的模式发送到QlineEdit的槽函数
void sendNumAndOper(void);
//计算和显示结果的槽函数
void calcClicked(void);
//将QlineEdit清空的槽函数
void textDel(void);
};
#endif
CalculatorDialog.cpp
#include "CalculatorDialog.h"
CalculatorDialog::CalculatorDialog(void){
//界面初始化
setupUi(this);
//信号和槽连接
//如果连接的槽函数是当前父窗口中自定义的,那么第三个参数一定是this
//点击各个按钮,将计算的式子组合起来,并且发送到文本框QlineEdit
connect(m_button_0,SIGNAL(clicked(void)),this,SLOT(sendNumAndOper(void)));
connect(m_button_1,SIGNAL(clicked(void)),this,SLOT(sendNumAndOper(void)));
connect(m_button_2,SIGNAL(clicked(void)),this,SLOT(sendNumAndOper(void)));
connect(m_button_3,SIGNAL(clicked(void)),this,SLOT(sendNumAndOper(void)));
connect(m_button_4,SIGNAL(clicked(void)),this,SLOT(sendNumAndOper(void)));
connect(m_button_5,SIGNAL(clicked(void)),this,SLOT(sendNumAndOper(void)));
connect