(1) 理论记录,官方大师解释: close ( ) 函数会关闭本窗体,但它会在关闭前触发 QCloseEvent 事件,事件会进入事件队列,并被组件处理,事件处理的过程中还存在事件传播 propagation ,在容器中依次向顶层组件传播。如果在事件处理函数 closeEvent(QCloseEvent * e ) 中忽略了此事件,那么可以神奇的改变 close()函数的关闭语义,导致关闭组件这一操作无法实现。
(2)采用自定义类的方式,重写事件处理虚函数 :
++测试结果如下 :
++ 以及 :
(3)用事件过滤器再做一遍测试 :
(4)
谢谢