Уважаемые господа, я только что начал осваивать qt, поэтому прошу ответить на мой вопрос (или же ткнуть ссылкой в поиск, гугл, указать на нужные настройки qtcreator, etc).
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>
#include <math.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
char textInLine[130];
int sch=0;
void MainWindow::on_deleteButton_clicked()
{
for(sch=0;sch<100;sch++)
textInLine[sch] = NULL;
sch = 0;
ui->lineEdit->clear();
}
void MainWindow::on_Button_1_clicked()
{
textInLine[sch] = '1';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_Button_2_clicked()
{
textInLine[sch] = '2';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_Button_3_clicked()
{
textInLine[sch] = '3';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_Button_4_clicked()
{
textInLine[sch] = '4';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_Button_5_clicked()
{
textInLine[sch] = '5';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_Button_6_clicked()
{
textInLine[sch] = '6';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_Button_7_clicked()
{
textInLine[sch] = '7';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_Button_8_clicked()
{
textInLine[sch] = '8';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_Button_9_clicked()
{
textInLine[sch] = '9';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_Button_0_clicked()
{
textInLine[sch] = '0';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_Button_00_clicked()
{
textInLine[sch] = '0';
sch++;
textInLine[sch] = '0';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_plus_btn_clicked()
{
textInLine[sch] = '+';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_minus_btn_clicked()
{
textInLine[sch] = '-';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_multiply_btn_clicked()
{
textInLine[sch] = '*';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_div_btn_clicked()
{
textInLine[sch] = '/';
sch++;
ui->lineEdit->setText(textInLine);
}
void MainWindow::on_equal_sign_btn_clicked()
{
textInLine[sch] = '=';
sch++;
ui->lineEdit->setText(textInLine);
long int fir, sec;
int schv,sch1;
char chFir[50], chSec[50];
for(schv=0, sch1=0;;schv++){
if (textInLine[schv]=='+'||textInLine[schv]=='-'||textInLine[schv]=='*'||textInLine[schv]=='/')
break;
else { chFir[sch1]=textInLine[schv]; sch1++; }
}
char sign = textInLine[schv];
chFir[sch1] = '\0';
fir = atoi(chFir);
for(sch1=0;;schv++){
if (textInLine[schv]=='=')
break;
else { chSec[sch1]=textInLine[schv]; sch1++; }
}
chSec[sch1] = '\0';
sec = atoi(chSec);
double resul;
switch(sign){
case '+' : resul = fir + sec; /*fir += sec;*/ break;
case '-' : resul = fir - sec; /*fir -= sec;*/ break;
case '*' : resul = fir * sec; /*fir *= sec;*/ break;
case '/' : resul = fir / sec; /*fir /= sec;*/ break;
default : resul = fir - sec; break;
}
QString txt;
txt.append(textInLine);
txt.append(QString::number(resul, 'g', 10));
// txt.append(QString::number(fir,10));
ui->lineEdit->setText(txt);
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void changeEvent(QEvent *e);
private:
Ui::MainWindow *ui;
private slots:
void on_deleteButton_clicked();
void on_Button_1_clicked();
void on_Button_2_clicked();
void on_Button_3_clicked();
void on_Button_4_clicked();
void on_Button_5_clicked();
void on_Button_6_clicked();
void on_Button_7_clicked();
void on_Button_8_clicked();
void on_Button_9_clicked();
void on_Button_0_clicked();
void on_Button_00_clicked();
void on_plus_btn_clicked();
void on_minus_btn_clicked();
void on_div_btn_clicked();
void on_multiply_btn_clicked();
void on_equal_sign_btn_clicked();
};
#endif // MAINWINDOW_H
Так вот, это чудо моей воспаленной фантазии ведет себя не так как хотелось бы. То бишь - при вычитании складывает, при умножении выводит 0, при делении вылетает. Версия qtcreator 1.3.1. В чем моя проблема?