IVS-calculator
Loading...
Searching...
No Matches
gui.h
Go to the documentation of this file.
1
6#ifndef GUI_H
7#define GUI_H
8
9#include <QMainWindow>
10#include <QKeyEvent>
11#include <QString>
12#include "../mathlib.h"
13
14QT_BEGIN_NAMESPACE
15namespace Ui { class Gui; }
16QT_END_NAMESPACE
17
25class Gui : public QMainWindow
26{
27 Q_OBJECT
28
29public:
30 explicit Gui(QWidget *parent = nullptr);
31 ~Gui();
32
33private slots:
35 void on_btn_0_clicked();
36 void on_btn_1_clicked();
37 void on_btn_2_clicked();
38 void on_btn_3_clicked();
39 void on_btn_4_clicked();
40 void on_btn_5_clicked();
41 void on_btn_6_clicked();
42 void on_btn_7_clicked();
43 void on_btn_8_clicked();
44 void on_btn_9_clicked();
45
49 void on_btn_mul_clicked();
50 void on_btn_div_clicked();
51 void on_btn_mod_clicked();
52 void on_btn_pow_clicked();
54 void on_btn_fac_clicked();
55
59 void on_btn_dot_clicked();
60
61private:
62 Ui::Gui *ui;
65
66 void updateDisplay();
68
70 void keyPressEvent(QKeyEvent *event) override;
71
73 bool endsWithOperator() const;
74 bool hasOperator() const;
75 int findOperatorPos(QChar op) const;
76 void appendDigit(const QString &digit);
77 void appendOperator(const QString &op);
78};
79
80#endif // GUI_H
Main window class for the calculator GUI.
Definition gui.h:26
Ui::Gui * ui
Definition gui.h:62
void on_btn_plus_clicked()
Operation button handlers.
Definition gui.cpp:174
bool hasOperator() const
Checks if the expression already contains a binary operator.
Definition gui.cpp:88
void on_btn_clear_clicked()
Control buttons.
Definition gui.cpp:263
void updateDisplay()
Updates the calculator display.
Definition gui.cpp:64
QString currentExpression
Definition gui.h:63
void on_btn_3_clicked()
Definition gui.cpp:164
int findOperatorPos(QChar op) const
Finds the position of the binary operator in the expression.
Definition gui.cpp:278
~Gui()
Destructor. Frees allocated resources.
Definition gui.cpp:30
bool endsWithOperator() const
Helpers for input validation.
Definition gui.cpp:73
void on_btn_div_clicked()
Definition gui.cpp:177
void appendOperator(const QString &op)
Appends a binary operator to the expression.
Definition gui.cpp:125
void on_btn_mul_clicked()
Definition gui.cpp:176
void on_btn_mod_clicked()
Definition gui.cpp:178
void on_btn_5_clicked()
Definition gui.cpp:166
Gui(QWidget *parent=nullptr)
Constructs the GUI and initializes components.
Definition gui.cpp:18
void on_btn_root_clicked()
Appends square root operator.
Definition gui.cpp:218
void on_btn_2_clicked()
Definition gui.cpp:163
void appendDigit(const QString &digit)
Appends a digit to the expression.
Definition gui.cpp:108
void on_btn_1_clicked()
Definition gui.cpp:162
void on_btn_minus_clicked()
Definition gui.cpp:175
void on_btn_pow_clicked()
Definition gui.cpp:179
void on_btn_0_clicked()
Digit button handlers.
Definition gui.cpp:161
void on_btn_7_clicked()
Definition gui.cpp:168
void on_btn_dot_clicked()
Appends a decimal point to the current expression.
Definition gui.cpp:187
void on_btn_4_clicked()
Definition gui.cpp:165
void keyPressEvent(QKeyEvent *event) override
Keyboard input handler.
Definition gui.cpp:384
void showError(mathlib::MathError err)
Displays an error message based on mathlib error code.
Definition gui.cpp:39
void on_btn_8_clicked()
Definition gui.cpp:169
void on_btn_equal_clicked()
Evaluates the current expression.
Definition gui.cpp:294
bool justEvaluated
Definition gui.h:64
void on_btn_6_clicked()
Definition gui.cpp:167
void on_btn_9_clicked()
Definition gui.cpp:170
void on_btn_fac_clicked()
Appends factorial operator.
Definition gui.cpp:238
Mathematical library for calculator project.
Definition gui.h:15
MathError
Definition mathlib.h:11