Название: Отлавить закрытие виджета Отправлено: alexeev от Октябрь 09, 2013, 16:23 Здравствуйте, у меня есть класс A, который наследуюется от Qwidget, и в нем создаются три объекта Qwidget QA,QB,QC.
В другом классе создается объект класса A. Как в этом классе отследить закрытие виджетов QA или QB. Название: Re: Отлавить закрытие виджета Отправлено: GreatSnake от Октябрь 09, 2013, 16:51 Код
Название: Re: Отлавить закрытие виджета Отправлено: alexeev от Октябрь 09, 2013, 16:54 Если не поставить такой флаг ->setAttribute( Qt::WA_DeleteOnClose ), то destroy вызван не будет, по закрытию, если я все правильно понимаю.
Но мне не нужно чтобы просходил destroy, мне сам виджет удалять не надо, надо лишь закрыть его и удалить некторые объекты. Название: Re: Отлавить закрытие виджета Отправлено: mutineer от Октябрь 09, 2013, 17:04 Можно через void QObject::installEventFilter ( QObject * filterObj ) установить фильтр и ловить в нем closeEvent
Название: Re: Отлавить закрытие виджета Отправлено: GreatSnake от Октябрь 09, 2013, 17:39 Либо переопределить
Код
Код
Название: Re: Отлавить закрытие виджета Отправлено: mutineer от Октябрь 09, 2013, 17:41 Код
А для чего тут do_close? Название: Re: Отлавить закрытие виджета Отправлено: GreatSnake от Октябрь 09, 2013, 17:47 Я это у себя использовал для отлова закрытия главного окна.
Условия можно настроить под себя. А do_close в слоте выставлялся в false, если передумали окно закрывать. Название: Re: Отлавить закрытие виджета Отправлено: mutineer от Октябрь 09, 2013, 17:50 То есть работает только с прямым вызовом?
Название: Re: Отлавить закрытие виджета Отправлено: Maestro от Октябрь 09, 2013, 17:54 Но мне не нужно чтобы просходил destroy, мне сам виджет удалять не надо, надо лишь закрыть его и удалить некторые объекты. Может быть вам нужен QWidget::hideEvent(QHideEvent * event)жНазвание: Re: Отлавить закрытие виджета Отправлено: GreatSnake от Октябрь 10, 2013, 07:22 То есть работает только с прямым вызовом? Да.Название: Re: Отлавить закрытие виджета Отправлено: alexeev от Октябрь 10, 2013, 10:36 Всем огромное спасибо!!!! Использвоал QObject::installEventFilter ( QObject * filterObj );
|