Skip to content

Commit ca81ad4

Browse files
committed
use lambda instead of signal mapper in calculator
1 parent 5d3196b commit ca81ad4

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

examples/CalcQt/src/CalculatorWidget.cpp

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include <QKeyEvent>
55
#include <QLabel>
66
#include <QPushButton>
7-
#include <QSignalMapper>
87

98
CalculatorWidget::CalculatorWidget(QWidget* parent) :
109
QWidget(parent) {
@@ -23,36 +22,40 @@ CalculatorWidget::CalculatorWidget(QWidget* parent) :
2322
policy.setVerticalPolicy(QSizePolicy::Fixed);
2423
displayLabel->setSizePolicy(policy);
2524

26-
signalMapper = new QSignalMapper(this);
2725
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); });
3027
layout->addWidget(button, 4, 1);
3128
digitButtons.push_back(button);
3229
for (unsigned int i = 1; i < 10; ++i) {
3330
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); });
3632
layout->addWidget(button, 1 + (9 - i) / 3, (i - 1) % 3);
3733
digitButtons.push_back(button);
3834
}
39-
QObject::connect(signalMapper, SIGNAL(mapped(int)), SLOT(buttonClicked(int)));
4035

4136
clearButton = new QPushButton("C", this);
4237
layout->addWidget(clearButton, 1, 4);
43-
QObject::connect(clearButton, SIGNAL(clicked()), SLOT(clearButtonClicked()));
38+
QObject::connect(
39+
clearButton, &QPushButton::clicked, this, &CalculatorWidget::clearButtonClicked
40+
);
4441

4542
additionButton = new QPushButton("+", this);
4643
layout->addWidget(additionButton, 2, 4);
47-
QObject::connect(additionButton, SIGNAL(clicked()), SLOT(addButtonClicked()));
44+
QObject::connect(
45+
additionButton, &QPushButton::clicked, this, &CalculatorWidget::addButtonClicked
46+
);
4847

4948
subtractionButton = new QPushButton("-", this);
5049
layout->addWidget(subtractionButton, 3, 4);
51-
QObject::connect(subtractionButton, SIGNAL(clicked()), SLOT(subtractButtonClicked()));
50+
QObject::connect(
51+
subtractionButton, &QPushButton::clicked, this, &CalculatorWidget::subtractButtonClicked
52+
);
5253

5354
calculateButton = new QPushButton("=", this);
5455
layout->addWidget(calculateButton, 4, 4);
55-
QObject::connect(calculateButton, SIGNAL(clicked()), SLOT(calculateButtonClicked()));
56+
QObject::connect(
57+
calculateButton, &QPushButton::clicked, this, &CalculatorWidget::calculateButtonClicked
58+
);
5659
}
5760

5861
int CalculatorWidget::calculate(const QString& expression) {

examples/CalcQt/src/CalculatorWidget.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
class QLabel;
44
class QPushButton;
5-
class QSignalMapper;
65

76
#include <QString>
87
#include <QWidget>
@@ -29,8 +28,6 @@ class CalculatorWidget : public QWidget {
2928

3029
QPushButton* keyclickedButton;
3130

32-
QSignalMapper* signalMapper;
33-
3431
int calculate(const QString& expression);
3532

3633
private Q_SLOTS:

0 commit comments

Comments
 (0)