Я хочу показать окно сообщения с подтверждением и заблокировать экран до того, как пользователь уйдет (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;
}
Для закрытия мероприятия:
Перепишите 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) ;
}