closeEvent 退出操作

来源:互联网 发布:中文域名证书生成器 编辑:程序博客网 时间:2024/06/08 00:02


在一个情形下,我们必须使用accept()和ignore()函数,那就是在窗口关闭的时候。这个必须明确显示的调用accept()和ignore(),


在closeEvent()事件处理函数中,accept()是关闭窗口,ignore()是不关闭窗口,只有在closeEvent()中才是这样,



如果你在窗口关闭时需要有个询问对话框,那么就需要这么去写:


closeEvent事件的默认槽函数是QWidget类的CloseEvent()函数,该函数中,会关闭掉当前的widget,
void MainWindow::closeEvent(QCloseEvent *event)
{
        if(continueToClose()) {
                event->accept();
        }else {
                event->ignore();
        }
}



bool MainWindow::continueToClose()
{
        if(QMessageBox::question(this,
                                            tr("Quit"),
                                            tr("Are you sure to quit this application?"),
                                            QMessageBox::Yes | QMessageBox::No,
                                            QMessageBox::No)
                == QMessageBox::Yes) {
                returntrue;
        }else {
                return false;
        }
}


这样,我们经过询问之后才能正常退出程序。



来源:qevent 事件的accept()和ignore()



0 0
原创粉丝点击