在samp4_1中加一个小功能,点击右上角关闭按钮时,弹出“确认是否关闭”的消息框。如果点“yes”则关闭,如果点“No”则不关闭
在widget.h中添加代码:
#include <QCloseEvent> protected: void closeEvent(QCloseEvent *ev);
在widget.cpp中添加代码:
1 #include <QMessageBox> 2 void Widget::closeEvent(QCloseEvent *ev){ 3 int ret = QMessageBox::question(this,"question","Close the Windows?"); 4 if(ret == QMessageBox::Yes){ 5 ev->accept(); 6 }else{ 7 ev->ignore(); 8 } 9 }
- 重写了主窗口widget的事件处理函数(event handler)closeEvent()
- accept()和ignore()是事件对象的事件处理函数,accept()接收事件并终止传递,ignore()忽略事件不做处理,事件会传递给父组件