/* * ������ * ʵ�ּ��������ù��� * ������ʵ�ֺ������Ĵ��� * ������Qt Creator * Lzy 2011-8-26 */ #include "widgetcounter.h" #include "ui_widgetcounter.h" #include #include WidgetCounter::WidgetCounter(QWidget *parent) : QWidget(parent), ui(new Ui::WidgetCounter) { ui->setupUi(this); ui->lEditPlay->setText("0"); //��ʼ�� ��ʾ0 num = num1 = num2 = 0; f_point = f_num = false; op = 0; times = 1; QObject::connect(this,SIGNAL(NumClick(int)), this, SLOT(Counter(int))); //�ź����۴������� } WidgetCounter::~WidgetCounter() { delete ui; } void WidgetCounter::changeEvent(QEvent *e) { QWidget::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } /*��ֵ����*/ void WidgetCounter::Counter(int i) { if(!f_point) { if(!f_num) { num1 = num1 * 10 + i; ui->lEditPlay->setText(QString::number(num1)); } else { num2 = num2 * 10 + i; ui->lEditPlay->setText(QString::number(num2)); } } else { times *= 10; if(!f_num) { num1 = num1 + i/times; ui->lEditPlay->setText(QString::number(num1)); } else { num2 = num2 + i/times; ui->lEditPlay->setText(QString::number(num2)); } } } /*���ֽ�����*/ void WidgetCounter::on_Btn1_clicked() { emit NumClick(1); } void WidgetCounter::on_Btn2_clicked() { emit NumClick(2); } void WidgetCounter::on_Btn3_clicked() { emit NumClick(3); } void WidgetCounter::on_Btn4_clicked() { emit NumClick(4); } void WidgetCounter::on_Btn5_clicked() { emit NumClick(5); } void WidgetCounter::on_Btn6_clicked() { emit NumClick(6); } void WidgetCounter::on_Btn7_clicked() { emit NumClick(7); } void WidgetCounter::on_Btn8_clicked() { emit NumClick(8); } void WidgetCounter::on_Btn9_clicked() { emit NumClick(9); } void WidgetCounter::on_Btn0_clicked() { emit NumClick(0); } /*���ܼ�����*/ void WidgetCounter::on_BtnDev_clicked() { op = '/'; f_num = true; f_point = false; times = 1; } void WidgetCounter::on_BtnMul_clicked() { op = '*'; f_num = true; f_point = false; times = 1; } void WidgetCounter::on_BtnSub_clicked() { op = '-'; f_num = true; f_point = false; times = 1; } void WidgetCounter::on_BtnPlus_clicked() { op = '+'; f_num = true; f_point = false; times = 1; } /*��������*/ void WidgetCounter::on_BtnEql_clicked() { switch(op) { case '+': num = num1 + num2; break; case '-': num = num1 - num2; break; case '*': num = num1 * num2; break; case '/': num = num1 / num2; break; case 0: num = num1; } ui->lEditPlay->setText(QString::number(num)); num1 = num; num2 = 0; op = 0; times = 1; } /*С���㰴��*/ void WidgetCounter::on_BtnPoint_clicked() { f_point = true; } /*����������*/ void WidgetCounter::on_BtnC_clicked() { ui->lEditPlay->setText("0"); num1 = 0; num2 = 0; op = 0; f_point = f_num = false; times = 1; } void WidgetCounter::on_BtnBack_clicked() { if(!f_num) { ui->lEditPlay->backspace(); num1 = ui->lEditPlay->text().toDouble(); ui->lEditPlay->setText(QString::number(num1)); } else { ui->lEditPlay->backspace(); num2 = ui->lEditPlay->text().toDouble(); ui->lEditPlay->setText(QString::number(num2)); } } void WidgetCounter::on_BtnCE_clicked() { if(f_num) { num2 = 0; ui->lEditPlay->setText(QString::number(num2)); } else if(op != 0) op = 0; else { num1 = 0; ui->lEditPlay->setText(QString::number(num1)); } }