关闭程序窗口函数调用过程

使用者选按关闭按钮,于是发出 WM_CLOSE。
CMyFrameWnd 并没有设置WM_CLOSE 处理常式,于是交给预设之处理常式。
预设函数对于WM_CLOSE 的处理方式是呼叫 ::DestroyWindow, 并因而发出WM_DESTROY。
预设之WM_DESTROY 处理方式是呼叫::PostQuitMessage,因此发出WM_QUIT。
CWinApp::Run 收到WM_QUIT 后会结束其内部之讯息回路, 然后呼叫ExitInstance,这是CWinApp 的一个虚拟函数。
如果CMyWinApp 改写了ExitInstance , 那么CWinApp::Run 所呼叫的就是CMyWinApp::ExitInstance,否则就是 CWinApp::ExitInstance。
最后回到 AfxWinMain,执行 AfxWinTerm,结束程序。


WM_CLOSE,调用DestroyWindow()
DestroyWindow()又发送WM_DESTROY
响应WM_DESTROY,调用WM_QUIT
GetMessage()发现WM_QUIT,退出程序

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 PyQt5 中,可以使用 `QApplication` 类的 `quit()` 方法来关闭窗口程序。`QApplication` 是 PyQt5 中用于管理应用程序生命周期的对象,它负责处理事件循环和窗口管理等任务。 要关闭窗口程序,首先需要确保已经创建了一个 `QApplication` 对象。在 PyQt5 中,可以使用 `QApplication` 类的 `instance()` 方法获取 `QApplication` 对象的实例,该方法会尝试返回一个已经存在的 `QApplication` 对象。如果没有找到已经存在的对象,则会自动创建一个新的对象。 一旦创建了 `QApplication` 对象,就可以使用 `quit()` 方法来关闭窗口程序。该方法会触发应用程序的退出事件,并结束事件循环。 下面是一个简单的示例代码,演示了如何使用 `quit()` 方法关闭窗口程序: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget def main(): app = QApplication(sys.argv) # 创建一个窗口对象 window = QWidget() window.setWindowTitle('关闭窗口程序') window.show() # 等待用户关闭窗口 sys.exit(app.exec_()) if __name__ == '__main__': main() ``` 在上面的示例中,我们首先创建了一个 `QApplication` 对象,并创建了一个 `QWidget` 对象作为窗口。然后,我们使用 `show()` 方法显示窗口。最后,我们调用 `sys.exit(app.exec_())` 来等待用户关闭窗口并结束应用程序的事件循环。当用户关闭窗口时,PyQt5 将自动调用 `quit()` 方法并结束程序。 需要注意的是,在 PyQt5 中,应用程序退出时会自动调用 `quit()` 方法,因此通常不需要手动调用该方法。只有在特殊情况下,例如需要手动控制应用程序的退出时,才需要使用 `quit()` 方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值