/* |
* ������ |
* ʵ�ּ��������ù��� |
* ������ʵ�ֺ������Ĵ��� |
* ������Qt Creator |
* Lzy 2011-8-26 |
*/ |
#include "widgetcounter.h" |
#include "ui_widgetcounter.h" |
#include <QObject> |
#include <QString> |
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)); |
} |
} |
初级程序员
by: m 发表于:2016-03-16 19:37:27 顶(0) | 踩(0) 回复
怎么所有的程序都显示有一个错误呢,而且不显示错误在哪,怎么调试
回复评论