Russian Qt Forum

Qt => Общие вопросы => Тема начата: ecspertiza от Сентябрь 10, 2009, 09:35



Название: Родитель сигнала
Отправлено: ecspertiza от Сентябрь 10, 2009, 09:35
Вопрос такой допустим есть две кнопки, у каждой по сигналу clicked() , они обрабатываются одним слотом, возможно ли в этом слоте определить он какой именно кнопки пришёл сигнал?


Название: Re: Родитель сигнала
Отправлено: BRE от Сентябрь 10, 2009, 09:37
Вопрос такой допустим есть две кнопки, у каждой по сигналу clicked() , они обрабатываются одним слотом, возможно ли в этом слоте определить он какой именно кнопки пришёл сигнал?
QObject::sender()


Название: Re: Родитель сигнала
Отправлено: spirit от Сентябрь 10, 2009, 09:38
по sender'у.


Название: Re: Родитель сигнала
Отправлено: ecspertiza от Сентябрь 10, 2009, 09:48
Пасибо, то что нада.


Название: Re: Родитель сигнала
Отправлено: SASA от Сентябрь 10, 2009, 17:59
QObject::sender() не совсем красиво.
Я бы посмотрел QSignalMapper. Где-то я видел хорошую статейку с примером. Там Было 10 кнопок (калькулятор) и все вызывали один слот. Т.е. я предлагаю не раскручивать sender (который в ряде случаев может быть не правильный), а оринтироваться по входному параметру слота.


Название: Re: Родитель сигнала
Отправлено: spectre71 от Сентябрь 10, 2009, 18:04
QObject::sender() не совсем красиво.
Я бы посмотрел QSignalMapper. Где-то я видел хорошую статейку с примером. Там Было 10 кнопок (калькулятор) и все вызывали один слот. Т.е. я предлагаю не раскручивать sender (который в ряде случаев может быть не правильный), а оринтироваться по входному параметру слота.
"который в ряде случаев может быть не правильный"
Это как, в каких случаях?


Название: Re: Родитель сигнала
Отправлено: Alex Custov от Сентябрь 11, 2009, 03:48
"который в ряде случаев может быть не правильный"
Это как, в каких случаях?

Я вижу только один случай - прямой вызов слота, когда sender() вернёт 0


Название: Re: Родитель сигнала
Отправлено: SASA от Сентябрь 11, 2009, 11:42
Если соединить сигнал с сигналом. Кого должен вернуть sender - пересылающего или пославшего?
Не помню точно, но при изменении типа коннекта тоже что-то не так.