@@ -9,6 +9,7 @@ MainWindow::MainWindow(QWidget *parent)
9
9
{
10
10
ui->setupUi (this );
11
11
12
+ // number buttons
12
13
connect (ui->pushButton_0 , SIGNAL (released ()), this , SLOT (digit_pressed ()));
13
14
connect (ui->pushButton_1 , SIGNAL (released ()), this , SLOT (digit_pressed ()));
14
15
connect (ui->pushButton_2 , SIGNAL (released ()), this , SLOT (digit_pressed ()));
@@ -19,6 +20,10 @@ MainWindow::MainWindow(QWidget *parent)
19
20
connect (ui->pushButton_7 , SIGNAL (released ()), this , SLOT (digit_pressed ()));
20
21
connect (ui->pushButton_8 , SIGNAL (released ()), this , SLOT (digit_pressed ()));
21
22
connect (ui->pushButton_9 , SIGNAL (released ()), this , SLOT (digit_pressed ()));
23
+
24
+ // unary operation buttons.
25
+ connect (ui->pushButton_plusMinus , SIGNAL (released ()), this , SLOT (unary_operation_pressed ()));
26
+ connect (ui->pushButton_percent , SIGNAL (released ()), this , SLOT (unary_operation_pressed ()));
22
27
}
23
28
24
29
MainWindow::~MainWindow ()
@@ -30,17 +35,53 @@ void MainWindow::digit_pressed()
30
35
{
31
36
QPushButton * button = (QPushButton*)sender ();
32
37
33
- // check which button signal was received.
34
- qDebug () << button->text ();
35
-
36
38
double labelNumber;
37
39
QString newLabel;
38
40
39
- // labelNumber = (button->text()).toDouble(); // without new string append.
40
41
labelNumber = (ui->label ->text () + button->text ()).toDouble ();
41
-
42
42
newLabel = QString::number (labelNumber, ' g' , 15 );
43
43
44
- // ui->label->setText(button->text()); // set label text "Single character"
45
44
ui->label ->setText (newLabel);
46
45
}
46
+
47
+ void MainWindow::on_pushButton_decimal_released ()
48
+ {
49
+ ui->label ->setText (ui->label ->text () + " ." );
50
+ }
51
+
52
+ void MainWindow::unary_operation_pressed ()
53
+ {
54
+ QPushButton *button = (QPushButton*)sender ();
55
+ QString newLabel;
56
+ double labelNumber;
57
+
58
+ if (button->text () == " +/-" )
59
+ {
60
+ labelNumber = ui->label ->text ().toDouble ();
61
+ labelNumber = labelNumber * -1 ;
62
+ newLabel = QString::number (labelNumber, ' g' , 15 );
63
+ ui->label ->setText (newLabel);
64
+ }
65
+ if (button->text () == " %" )
66
+ {
67
+ labelNumber = ui->label ->text ().toDouble ();
68
+ labelNumber = labelNumber * 0.01 ;
69
+ newLabel = QString::number (labelNumber, ' g' , 15 );
70
+ ui->label ->setText (newLabel);
71
+ }
72
+ }
73
+
74
+ void MainWindow::on_pushButton_clear_released ()
75
+ {
76
+
77
+ }
78
+
79
+ void MainWindow::on_pushButton_equals_released ()
80
+ {
81
+
82
+ }
83
+
84
+ void MainWindow::binary_operation_pressed ()
85
+ {
86
+
87
+ }
0 commit comments