2016-03-04 3 views
2

У меня есть приложение, состоящее из двух, по-видимому, независимых окон. Окно 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(); 
} 
+0

Окна А может вызвать метод в B (что-то вроде ' close (true) '), поэтому B знает, что он должен быть закрыт при вызове' void B :: closeEvent (QCloseEvent * event) '. – Tarod

ответ

0

Вы можете отключить кнопку закрытия одного окна, изменяя его флаги окна

Смежные вопросы