В настоящее время я подключаю сигнал к такой функции:
dashboard.ui.start_button_r1.connect(:clicked, dashboard.ui.start_button_r1, :handler)
где start_button_r1
это QPushButton
Теперь мне нужна ссылка на передающий виджет в handler
, так как я буду подключать этот сигнал к нескольким виджетам. В идеале я хотел бы, чтобы моя функция-обработчик получала аргумент emitter
, с которым я мог бы поиграться. Я мог бы поместить handler
в класс, наследуемый от Qt::Object
(скажем, HandlerContainer
), и вызвать sender()
, но как тогда подключить сигнал к внутреннему методу HandlerContainer
? Я пробовал instance.method(:handler)
, но коннект не получает слоты таким образом
Я обычно использую этот подход в PyQt, но не могу понять, как это сделать с Ruby. Я чувствую, что делаю что-то ужасно неправильное, поскольку не так много дискуссий о том, как получить отправителя из слота с помощью QtRuby. Как это обычно делается? Я читал о QSignalMapper, но это кажется ужасно излишним для моего варианта использования.