Qt简易计算器代码.doc
文本预览下载声明
cwidget.cpp
#include cwidget.h
#define KEY_CLR CLR
#define KEY_ADD +
#define KEY_SUB -
#define KEY_MUL *
#define KEY_DIV /
#define KEY_EQ =
#define KEY_0 0
#define KEY_1 1
#define KEY_2 2
#define KEY_3 3
#define KEY_4 4
#define KEY_5 5
#define KEY_6 6
#define KEY_7 7
#define KEY_8 8
#define KEY_9 9
#define BUTTONWIDTH 30 //定义按键的长度
#define BUTTONHEIGHT 30 //定义按键的宽度
static char *buttontext[] = //定义静态全局变量
{
KEY_1,KEY_2,KEY_3,KEY_4,
KEY_5,KEY_6,KEY_7,KEY_8,
KEY_9,KEY_ADD,KEY_SUB,KEY_MUL,
KEY_DIV,KEY_EQ,KEY_CLR,KEY_0
};
CWidget::CWidget(QWidget *parent, char *name) //构造函数
{
initialize();
createForm();
}
CWidget::~CWidget() //析构函数,销毁各个按键
{
delete edit;
delete *button;
delete mainLayout;
delete topLayout;
delete bottomLayout;
}
void CWidget::calculate() //响应按键“=”,调用计算功能
{
switch(oper)
{
case Qt::Key_Plus: //加法
firstNum += secondNum;break;
case Qt::Key_Minus: //减法
firstNum -= secondNum;break;
case Qt::Key_Asterisk: //乘法
firstNum *= secondNum;break;
case Qt::Key_Slash: //除法
firstNum /= secondNum;break;
default:
firstNum = firstNum;
}
edit-setText(QString::number(firstNum));
}
void CWidget::setValue()
{
QString tempStr;
tempStr = edit-text(); //显示框中的数值赋给tempStr
if(tempStr.length() edit-maxLength()) //小于显示框允许的最大位数
tempStr += ((QPushButton *)sender())-text(); //将按键对应的数值添加tempStr
else
{
QMessageBox::information( this, tr(Calculator),tr(too long!)); //位数过多,报错
}
if(-1==oper) //没有按加减乘除、等于、清空键
{
firstNum = tempStr.toInt(); //把tempStr转换成整型数,赋给第一个计算数
edit-setText(QString::number(firstNum)); //变成字符串之后,显示
}
Else
显示全部