Qt——事件机制(二)

在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()忽略事件不做处理,事件会传递给父组件

猜你喜欢

转载自www.cnblogs.com/cxc1357/p/11997601.html
今日推荐