У меня есть приложение, состоящее из двух, по-видимому, независимых окон. Окно A загружает данные и показывает некоторые данные журнала, состояния; открывает окно В, где происходит интерактивная обработка. Чтобы предотвратить случайное закрытие, в B у меня есть обработчик событий, показанный ниже. Он отлично работает, однако он также запрещает Window A закрывать его после завершения. Есть ли лучший способ, чем использовать общедоступный слот в B и отправить сообщение через него A, что теперь окно B действительно может быть закрыто? (Или различать прекращение применения и закрытие одного из окон?)Как обрабатывать событие закрытия Qt5 для завершения?
void B::closeEvent(QCloseEvent *event)
{
QMessageBox::warning(this, tr("Application"),
tr("Can only be closed through closing the main window.!"),
QMessageBox::Ok);
event->ignore();
}
Окна А может вызвать метод в B (что-то вроде ' close (true) '), поэтому B знает, что он должен быть закрыт при вызове' void B :: closeEvent (QCloseEvent * event) '. – Tarod