Название: Проблема с closeEvent Отправлено: radislav72 от Апрель 09, 2010, 08:02 Помогите с такой проблемой.
Есть дилог - потомок QDialog, создан в дизайнере QTCreatorа. В нем переопределен обработчик события closeEvent: Код: class settlementDialog : public QDialog { Реализация closeEvent такая: Код: void settlementDialog::closeEvent(QCloseEvent *e) Сам диалог показывается таким образом: Код: settlementDialog *sd = new settlementDialog(this, RT_ADD); На диалоге есть buttonBox с кнопками ОК и Отмена. Нужно сделать так, чтобы при нажатии ОК проверялись данные формы, и если они не правильны, выдавалось сообщение и диалог не закрывался. Если нажимается Отмена- диалог закрывается по-любому. По идее, в приведенном коде диалог не должен закрыться. Но он закрывается. И сообщение "CloseEvent!" вообще никогда не показывается. Почему? В чем ошибка? Если делать так для MainWindow, все работает прекрасно. Уже второй день мучаюсь :) Название: Re: Проблема с closeEvent Отправлено: Павел_F. от Апрель 09, 2010, 08:54 Он не закрывается
Кнопка ок зовет void QDialog::accept () [virtual slot] Кнопка отмены зовет void QDialog::reject () [virtual slot] Но сам close() не зовет никто и closeEvent не вызывается Переопределяйте нужный вам слот и всего делов. Название: Re: Проблема с closeEvent Отправлено: radislav72 от Апрель 09, 2010, 10:47 Спасибо за подсказки!
Все решилось очень просто :)) Код: void settlementDialog::accept() * лишней была строка Код: QDialog::closeEvent(e); Название: Re: Проблема с closeEvent Отправлено: radislav72 от Апрель 09, 2010, 11:45 Исправлю себя:
Код: void settlementDialog::accept() Так работает хорошо вроде |