Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Siarshai от Апрель 23, 2013, 12:55



Название: Сигналы от QGroupBox и QRadioButton
Отправлено: Siarshai от Апрель 23, 2013, 12:55
Обычная ситуация: есть QGroupBox, объединяющий несколько (порядка 10) QRadioButton'ов. Переключение QRadioButton'ов по сути изменяет значение одной флаговой переменной, причём линейно (т.е. значение переменной = номер выбранного QRadioButton'а). Но, чтобы изменить переменную, нужно присоединить QRadioButton к слоту объекта, хранящего переменную, и вот проблема: слот не может иметь больше аргументов, чем сигнал, а у clicked() их ноль. В результате приходится создавать 10 connect'ов и столько же слотов у объекта. Это явно избыточно. Неужели нет какого-нибудь красивого способа получить номер кликнутого Button'a и передать его? По идее, этим должен заниматься QGroupBox, но у него вроде ничего такого нет.


Название: Re: Сигналы от QGroupBox и QRadioButton
Отправлено: Bepec от Апрель 23, 2013, 13:03
По секрету вам сообщаю, что есть один интересный класс -  QButtonGroup с сигналом void   buttonClicked ( int id ).
И всё.


Название: Re: Сигналы от QGroupBox и QRadioButton
Отправлено: mutineer от Апрель 23, 2013, 13:04
Попробуй использовать QSignalMapper


Название: Re: Сигналы от QGroupBox и QRadioButton
Отправлено: kambala от Апрель 23, 2013, 13:55
можно просто в цикле присоединить всё к одному слоту и задать object name (или просто добавить property с числом) каждой кнопке, а потом в слоте считывать соответствующую штуку с sender()'а


Название: Re: Сигналы от QGroupBox и QRadioButton
Отправлено: Bepec от Апрель 23, 2013, 14:12
Зачем мутить с маппером, сигнала и доп параметрами, если есть класс для этих целей, упомянутый мной ранее и включающий вообще всё, что только можно придумать?

Хм, не понимаю я вашей логики однако.


Название: Re: Сигналы от QGroupBox и QRadioButton
Отправлено: Siarshai от Апрель 23, 2013, 14:31
Спасибо всем. QButtonGroup, кажется, действительно самый удобный вариант.


Название: Re: Сигналы от QGroupBox и QRadioButton
Отправлено: mutineer от Апрель 23, 2013, 16:46
Зачем мутить с маппером, сигнала и доп параметрами, если есть класс для этих целей, упомянутый мной ранее и включающий вообще всё, что только можно придумать?

Хм, не понимаю я вашей логики однако.

Тебе плохо стало от того, что я предложил человеку альтернативу? Может ему маппер в другом случае понадобится


Название: Re: Сигналы от QGroupBox и QRadioButton
Отправлено: Bepec от Апрель 23, 2013, 16:49
Да нет. Просто когда просят ручку и дают ручку - это понятно и просто :)

А когда вместо ручки дают чернильницу и перо, это уже мне непонятно. (скажем так избыточная сложность)

PS а так конечно альтернативы это хорошо.