Класс QCloseEvent
Класс QCloseEvent содержит параметры, описывающие событие закрытия. Подробнее...
| Заголовок: | #include <QCloseEvent> |
| qmake: | QT += gui |
| Наследует: | QEvent |
Открытые функции
| QCloseEvent() |
- 6 открытых функций унаследовано от QEvent
Дополнительные унаследованные члены
Подробное описание
Класс QCloseEvent содержит параметры, описывающие событие закрытия.
События закрытия отправляются виджетам, которые пользователь хочет закрыть, обычно выбрав «Закрыть» из меню окна или нажав кнопку X на строке заголовка. Они также отправляются, когда вы вызываете QWidget::close() для закрытия виджета программно.
События закрытия содержат флаг, который указывает, хочет ли получатель, чтобы виджет был закрыт или нет. Когда виджет принимает событие закрытия, он скрывается (и уничтожается, если он был создан с флагом Qt::WA_DeleteOnClose). Если он отказывается принимать событие закрытия, ничего не происходит. (В X11 возможно, что диспетчер окон принудительно закроет окно; но на момент написания нам неизвестен ни один диспетчер окон, который делает это.)
Обработчик событий QWidget::closeEvent() получает события закрытия. По умолчанию этот обработчик событий принимает событие закрытия. Если вы не хотите, чтобы ваш виджет скрывался или хотите какую-то специальную обработку, вы должны переопределить обработчик событий и вызвать ignore() для события.
Пример closeEvent() в примере приложения демонстрирует обработчик событий закрытия, который спрашивает, нужно ли сохранить документ перед закрытием.
Если вы хотите, чтобы виджет был удалён при закрытии, создайте его с флагом Qt::WA_DeleteOnClose. Это очень полезно для независимых окон верхнего уровня в многооконном приложении.
QObject излучает сигнал destroyed(), когда он удаляется.
Если последнее окно верхнего уровня закрыто, излучается сигнал QGuiApplication::lastWindowClosed().
Функция isAccepted() возвращает true, если получатель события согласился закрыть виджет; вызовите accept(), чтобы согласиться на закрытие виджета, и вызовите ignore(), если получатель этого события не хочет, чтобы виджет был закрыт.
См. также QWidget::close(), QWidget::hide(), QObject::destroyed(), QCoreApplication::exec(), QCoreApplication::quit() и QGuiApplication::lastWindowClosed().
Документация по членам-функциям
QCloseEvent::QCloseEvent()
Конструирует объект события закрытия.
См. также accept().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qcloseevent.html