Close events are sent to widgets that the user wants to close, usually by choosing "Close" from the window menu, or by clicking the `X' titlebar button. They are also sent when you call TQWidget::close() to close a widget programmatically.
Close events contain a flag that indicates whether the receiver wants the widget to be closed or not. When a widget accepts the close event, it is hidden (and destroyed if it was created with the WDestructiveClose flag). If it refuses to accept the close event nothing happens. (Under X11 it is possible that the window manager will forcibly close the window; but at the time of writing we are not aware of any window manager that does this.)
The application's main widget -- TQApplication::mainWidget() -- is a special case. When it accepts the close event, TQt leaves the main event loop and the application is immediately terminated (i.e. it returns from the call to TQApplication::exec() in the main() function).
The event handler TQWidget::closeEvent() receives close events. The default implementation of this event handler accepts the close event. If you do not want your widget to be hidden, or want some special handing, you should reimplement the event handler.
The closeEvent() in the Application Walkthrough shows a close event handler that asks whether to save a document before closing.
.PP
If you want the widget to be deleted when it is closed, create it with the WDestructiveClose widget flag. This is very useful for independent top-level windows in a multi-window application.
The isAccepted() function returns TRUE if the event's receiver has agreed to close the widget; call accept() to agree to close the widget and call ignore() if the receiver of this event does not want the widget to be closed.
See also TQWidget::close(), TQWidget::hide(), TQObject::destroyed(), TQApplication::setMainWidget(), TQApplication::lastWindowClosed(), TQApplication::exec(), TQApplication::quit(), and Event Classes.
If you choose to accept in TQWidget::closeEvent(), the widget will be hidden. If the widget's WDestructiveClose flag is set, it will also be destroyed.