Qt——事件机制

Posted cxc1357

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()忽略事件不做处理,事件会传递给父组件

以上是关于Qt——事件机制的主要内容,如果未能解决你的问题,请参考以下文章

Qt——事件机制

QT的动态翻译功能,可能依赖于消息(事件)机制

Qt ------ 事件处理机制

Qt 事件处理机制

QT开发——QT事件处理机制

Qt事件机制概览