Advertisement
Guest User

Untitled

a guest
Sep 6th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "rekenmachine.h"
  2. #include "ui_rekenmachine.h"
  3.  
  4. double currentValue = 0.0;
  5. double prevValue = 0.0;
  6. enum LastButton {plus, min, equals, multi, null};
  7. LastButton lastButton = null;
  8.  
  9. Rekenmachine::Rekenmachine(QWidget *parent) : QMainWindow(parent), ui(new Ui::Rekenmachine)
  10. {
  11.     ui->setupUi(this);
  12.  
  13.     ui->Display->setText(QString::number(currentValue));
  14.     QPushButton *buttons[3];
  15.     for (int i = 0; i < 3; ++i)
  16.     {
  17.         QString buttonName = "Button" + QString::number(i);
  18.         buttons[i] = Rekenmachine::findChild<QPushButton *>(buttonName);
  19.         connect(buttons[i], SIGNAL(released()), this, SLOT(pressNumber()));
  20.     }    
  21.  
  22.     connect(ui->Add, SIGNAL(released()), this, SLOT(pressMath()));
  23.     connect(ui->Subtract, SIGNAL(released()), this, SLOT(pressMath()));
  24.     connect(ui->Multiply, SIGNAL(released()), this, SLOT(pressMath()));
  25.     connect(ui->Result, SIGNAL(released()), this, SLOT(pressEqual()));
  26. }
  27.  
  28. Rekenmachine::~Rekenmachine()
  29. {
  30.     delete ui;
  31. }
  32.  
  33. void Rekenmachine::pressNumber()
  34. {
  35.     QPushButton *button = (QPushButton *)sender();
  36.     QString buttonValue = button->text();
  37.     QString displayValue= ui->Display->text();
  38.     if (displayValue.toDouble() == 0 || displayValue.toDouble() == 0.0)
  39.     {
  40.         ui->Display->setText(buttonValue);
  41.         currentValue = buttonValue.toDouble();
  42.     }
  43.     else
  44.     {
  45.         ui->Display->setText(QString::number((displayValue + buttonValue).toDouble()));
  46.         currentValue = (displayValue + buttonValue).toDouble();
  47.     }
  48. }
  49.  
  50. void Rekenmachine::pressMath()
  51. {
  52.     lastButton = null;
  53.     prevValue = currentValue;
  54.     ui->lineEdit->setText(QString::number(prevValue));
  55.    
  56.     QPushButton *button = (QPushButton *)sender();
  57.     if (button->text() == "+")
  58.     {
  59.         lastButton = plus;
  60.     }
  61.     if (button->text() == "-")
  62.     {
  63.         lastButton = min;
  64.     }
  65.     if (button->text() == "*")
  66.     {
  67.         lastButton = multi;
  68.     }
  69.     currentValue = 0;
  70.     ui->Display->setText(QString::number(currentValue));
  71. }
  72.  
  73. void Rekenmachine::pressEqual()
  74. {
  75.     if (lastButton = plus)
  76.     {
  77.         currentValue = prevValue + currentValue;
  78.     }
  79.     if (lastButton = min)
  80.     {
  81.         currentValue = prevValue - currentValue;
  82.     }
  83.     if (lastButton = multi)
  84.     {
  85.         currentValue = prevValue * currentValue;
  86.     }
  87.     ui->Display->setText(QString::number(currentValue));
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement