Название: QDialog и его buttonbox Отправлено: Vlad от Ноябрь 02, 2009, 14:55 Есть QDialog, на нем его стандартные кнопки Cancel OK. При нажатии ОК нужно сначала совершить некие действия, и после их правильного выполнения делать стандартную обработку ОК. Я делаю так - перевесил сигнал accepted() на свой слот. Как мне теперь добраться до слота accept() кнопки ОК? Если делать так - нажимается ОК, я делаю свои дела и потом вешаю сигнал accepted() на слот accept(), то нажимать кнопку надо 2 раза, что неприемлимо. Либо пробую напрямую вызвать accept(), но он protected. Может можно по другому еще как-то?
Название: Re: QDialog и его buttonbox Отправлено: BRE от Ноябрь 02, 2009, 14:59 Слот accept() виртуальный, в своем диалоги можно его перекрыть и выполнять необходимые действия и в конце звать QDialog::accept().
Код: class MyDialog : public QDialog Название: Re: QDialog и его buttonbox Отправлено: Vlad от Ноябрь 03, 2009, 01:19 Спс за подсказку, только приходится в конце писать QDialog::close(); вместо QDialog::accept(); - иначе слот сам себя вызывать начинает :o
Название: Re: QDialog и его buttonbox Отправлено: spectre71 от Ноябрь 03, 2009, 08:55 ... только приходится в конце писать QDialog::close(); вместо QDialog::accept(); - иначе слот сам себя вызывать начинает :o С какой стати? Ерунда! Название: Re: QDialog и его buttonbox Отправлено: Vlad от Ноябрь 03, 2009, 16:37 Хз, по крайней мере у меня действие напоминающее это было.
|