我想在用户离开之前显示确认消息框并阻止屏幕(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;
}
答案 0 :(得分:1)
For close event:
Reimplement closeEvent
method in your MainWindow class. Link
对于窗口激活和停用事件,请尝试following:
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) ;
}