干净地终止wxPython应用程序

2024-10-16 17:23:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个wxPython应用程序,它有多个帧和一个串行连接。我需要能够干净地退出应用程序,关闭串行连接的应用程序终止。在

最好的办法是什么?这应该由wxApp的子类处理吗?在

谢谢, 乔希


Tags: 应用程序wxpython子类办法wxapp
2条回答

不完全确定你在这里遇到了什么问题,但我会在黑暗中试着假设这是一个程序组织/设计问题。在

可能还有一些我不熟悉的更好的方法,但我会尝试这样做:创建一个“父”对象(不必有任何特定类型),它保留对多个帧的引用。当其中一个帧从菜单或您所拥有的内容接收到退出事件时,它调用self.parent.broadcast_退出(),它向它保存的引用的每个帧发送一个quit事件。在

这种方式在某种程度上表达了视图控制器分离,其中帧是视图的一部分,父对象是告诉我何时关闭控制器父对象也可以很好地封装连接断开,因为它可以随时了解哪些帧已经关闭以及何时关闭。您可以保留有关如何在帧本身中分解视图的详细信息,然后可以在拆分期间将“我完成”消息发送回控制器,从而在父对象侧触发一些最终的拆分。在

请参阅wx.PostEventCustom Event Classes的文档。(事件是用non-blocking GUI表示跨窗口消息的一种很好的规范化方法。)

我通常在关闭框架之前使用close按钮的事件处理程序来关闭连接和其他什么。如果要捕捉右上角的“x”按钮,则需要绑定到EVT_CLOSE。不幸的是,当你这么做的时候,你需要调用你的frame的Destroy()方法而不是它的Close()方法,否则你将陷入一个无限循环。在

相关问题 更多 >