Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: DarkHobbit от Ноябрь 28, 2021, 10:53



Название: QButtonBox: отличить разные виды accept-ов
Отправлено: DarkHobbit от Ноябрь 28, 2021, 10:53
Добрый день.
У меня есть диалог, а в нём QButtonBox с несколькими стандартным кнопками, в том числе Yes и YesToAll. Обе они приводят к результату QDialog::Accepted.
Есть какой-нибудь способ после exec() определить, какой кнопкой был завершён диалог? Или только в самом диалоге ловить сигнал clicked() от кнопки и какой-то временный флаг устанавливать, а по выходу из диалога его анализировать?


Название: Re: QButtonBox: отличить разные виды accept-ов
Отправлено: Day от Ноябрь 28, 2021, 13:18
Я ловлю clicked()
По номеру (имени) кнопки устанавливая флаг. Его и возвращаю.
Диалог создаю не Дисигнером, а вручную. Кнопки  - в виде массива.
Слот на все кнопки один. В слоте анализирую имя (номер) кнопки


Название: Re: QButtonBox: отличить разные виды accept-ов
Отправлено: DarkHobbit от Ноябрь 28, 2021, 16:06
Спасибо.
В общем, как и в прошлый раз (http://www.prog.org.ru/topic_33152_0.html) - вещь вроде бы полезная, но недоделанная, приходится подпирать костылями.
Хотя в данном случае, оно, пожалуй, к лучшему, пока я искал ответ, я подумал и решил, что в моей задаче кнопка "Да для всех" слишком опасная, и лучше UI сделать вообще немножко по-другому. Так что всё к лучшему.