EgoRusMarch
@EgoRusMarch
C++ Developer

Qt. Как в слоте получить указатель на виджет, который испустил сигнал?

Кнопок может быть сколько угодно, и создаются они динамически. Естественно, коннектятся с одним и тем же слотом. Как можно получить указатель на QPushButton, который испустил сигнал? Или, если нельзя, то как эту проблему можно решить иначе?
  • Вопрос задан
  • 252 просмотра
Решения вопроса 2
IGHOR
@IGHOR Куратор тега Qt
Qt/C++ DEV/CTO
QPushButton *button = qobject_cast<QPushButton*>(sender());
Ответ написан
Zifix
@Zifix Куратор тега Qt
Barbatum
This class collects a set of parameterless signals, and re-emits them with integer, string or widget parameters corresponding to the object that sent the signal. Note that in most cases you can use lambdas for passing custom parameters to slots. This is less costly and will simplify the code.

https://doc.qt.io/qt-5/qsignalmapper.html
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
QObject* obj = sender();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы