方法一、
窗口右上角的X按键会导致其在不给出任何提示的情况下直接退出,
当点击右上角的x按键时,会触发Qt中的一个事件处理函数:void QWidget::closeEvent ( QCloseEvent * e ),默认情况该函数无任何提示性消息,如果需提示则需要重写该函数
void Dialog::closeEvent ( QCloseEvent * e )
{
if( QMessageBox::question(this,
tr("Quit"),
tr("Are you sure to quit this application?"),
QMessageBox::Yes, QMessageBox::No )
== QMessageBox::Yes){
e->accept();//不会将事件传递给组件的父组件
qDebug()<<"ok";
}
else
e->ignore();
}
说明:
- 事件的ignore函数表示忽略事件,将其传到父组件进行处理
- 事件的accept函数表示接受事件,组件自己进行处理,不会将事件传递给父组件
- 但是在这个closeEvent函数中,这两个函数尤其不一样的理解: