Как показать модальное подтверждающее сообщение перед выходом из окна (закрытием или потерей фокуса)?

Я хочу показать окно сообщения с подтверждением и заблокировать экран до того, как пользователь уйдет (alt + tab (закрыть или потерять фокус)) MainWindow. Как это сделать?

вот мой код

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QMainWindow::showFullScreen();
this->installEventFilter(this);
}

MainWindow::~MainWindow()
{
delete ui;
}

bool MainWindow::eventFilter(QObject *obj, QEvent *event){
if(event->type() == 128){
QMessageBox::information(this, "title", "text", QMessageBox::Ok | QMessageBox::Cancel);

return true;
}

return true;
}

1

Решение

Для закрытия мероприятия:

Перепишите closeEvent метод в вашем классе MainWindow. Ссылка на сайт

Для событий активации и деактивации окна попробуйте следующий:

bool MainWindow::event(QEvent * e) // overloading event(QEvent*) method of QMainWindow
{
switch(e->type())
{
// ...

case QEvent::WindowActivate :
// gained focus
break ;

case QEvent::WindowDeactivate :
// lost focus
break ;
// ...
} ;
return QMainWindow::event(e) ;
}
1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector