close 控件关闭 公共槽


close() 公共槽返回 bool 值,且调用会触发 closeEvent 事件。

  1. 隐藏控件

  2. 默认情况下,close() 公共槽只是隐藏控件 (即:控件仍存活)。

    譬如:后期还要使用的 QAction 动作、 QMenu 菜单、等。

  3. 删除控件

  4. 启用控件的 setAttribute(Qt.WA_DeleteOnClose, True) 属性,关闭时将立即删除控件。

    调用控件的 deleteLater() 公共槽, 将延迟删除控件。

  5. 清零控件

  6. 在某些情况下,close() 公共槽可清零由控件生成的历史描绘内容。

    否则,控件描绘内容仍可见,但无操作响应且不更新。

  7. 异常情况

  8. 有时调用 close() 公共槽,控件被关闭但未触发 closeEvent 关闭事件。

    解决办法: 先调用 hide() 公共槽触发 hideEvent 隐藏事件进行相关处理, 再调用 close() 公共槽也能获得相同效果。

Copyright Notice: This article is exclusive original manuscripts, copyrighted by Happy Digits Software , shall not be reproduced without permission.