4
4
#include < QKeyEvent>
5
5
#include < QLabel>
6
6
#include < QPushButton>
7
- #include < QSignalMapper>
8
7
9
8
CalculatorWidget::CalculatorWidget (QWidget* parent) :
10
9
QWidget(parent) {
@@ -23,36 +22,40 @@ CalculatorWidget::CalculatorWidget(QWidget* parent) :
23
22
policy.setVerticalPolicy (QSizePolicy::Fixed);
24
23
displayLabel->setSizePolicy (policy);
25
24
26
- signalMapper = new QSignalMapper (this );
27
25
QPushButton* button = new QPushButton (QString::number (0 ), this );
28
- QObject::connect (button, SIGNAL (clicked ()), signalMapper, SLOT (map ()));
29
- signalMapper->setMapping (button, 0 );
26
+ QObject::connect (button, &QPushButton::clicked, this , [this ] { buttonClicked (0 ); });
30
27
layout->addWidget (button, 4 , 1 );
31
28
digitButtons.push_back (button);
32
29
for (unsigned int i = 1 ; i < 10 ; ++i) {
33
30
QPushButton* button = new QPushButton (QString::number (i), this );
34
- QObject::connect (button, SIGNAL (clicked ()), signalMapper, SLOT (map ()));
35
- signalMapper->setMapping (button, i);
31
+ QObject::connect (button, &QPushButton::clicked, this , [i, this ] { buttonClicked (i); });
36
32
layout->addWidget (button, 1 + (9 - i) / 3 , (i - 1 ) % 3 );
37
33
digitButtons.push_back (button);
38
34
}
39
- QObject::connect (signalMapper, SIGNAL (mapped (int )), SLOT (buttonClicked (int )));
40
35
41
36
clearButton = new QPushButton (" C" , this );
42
37
layout->addWidget (clearButton, 1 , 4 );
43
- QObject::connect (clearButton, SIGNAL (clicked ()), SLOT (clearButtonClicked ()));
38
+ QObject::connect (
39
+ clearButton, &QPushButton::clicked, this , &CalculatorWidget::clearButtonClicked
40
+ );
44
41
45
42
additionButton = new QPushButton (" +" , this );
46
43
layout->addWidget (additionButton, 2 , 4 );
47
- QObject::connect (additionButton, SIGNAL (clicked ()), SLOT (addButtonClicked ()));
44
+ QObject::connect (
45
+ additionButton, &QPushButton::clicked, this , &CalculatorWidget::addButtonClicked
46
+ );
48
47
49
48
subtractionButton = new QPushButton (" -" , this );
50
49
layout->addWidget (subtractionButton, 3 , 4 );
51
- QObject::connect (subtractionButton, SIGNAL (clicked ()), SLOT (subtractButtonClicked ()));
50
+ QObject::connect (
51
+ subtractionButton, &QPushButton::clicked, this , &CalculatorWidget::subtractButtonClicked
52
+ );
52
53
53
54
calculateButton = new QPushButton (" =" , this );
54
55
layout->addWidget (calculateButton, 4 , 4 );
55
- QObject::connect (calculateButton, SIGNAL (clicked ()), SLOT (calculateButtonClicked ()));
56
+ QObject::connect (
57
+ calculateButton, &QPushButton::clicked, this , &CalculatorWidget::calculateButtonClicked
58
+ );
56
59
}
57
60
58
61
int CalculatorWidget::calculate (const QString& expression) {
0 commit comments