注意
**注意:**closeEvent关闭事件函数是MainWindow的成员函数,QMessageBox::question(this, , ,)的第一个参数用的this,不然会出现报错非成员函数使用this无效。
QMessageBox::question(NULL,"question", "你的学历是硕士研究生",QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
详细见:QMessageBox用法
源代码
mainwindow.h
void closeEvent(QCloseEvent *event);//关闭窗口事件,可以询问是否退出
mainwindow.cpp
/*------------关闭窗口,按钮设置弹出提示信息----------*/
void MainWindow::closeEvent(QCloseEvent *event)
{
//窗口关闭时询问是否退出
QMessageBox::StandardButton result=QMessageBox::question(this, "确认", "确定要退出本系统吗?",
QMessageBox::Yes|QMessageBox::No |QMessageBox::Cancel,
QMessageBox::No);
if (result==QMessageBox::Yes)//确定已经关闭主窗口 回收子线程资源
{
event->accept();
// //退出线程的消息循环
// m_thread.quit();
// //等待线程结束 回收资源
// m_thread.wait();
}
else
{
event->ignore();
}
}
实现效果
提示的对话框的格式继承了MainWindow的格式。