2024-10-16 17:23:45 发布
网友
我正在开发一个wxPython应用程序,它有多个帧和一个串行连接。我需要能够干净地退出应用程序,关闭串行连接的应用程序终止。在
最好的办法是什么?这应该由wxApp的子类处理吗?在
谢谢, 乔希
不完全确定你在这里遇到了什么问题,但我会在黑暗中试着假设这是一个程序组织/设计问题。在
可能还有一些我不熟悉的更好的方法,但我会尝试这样做:创建一个“父”对象(不必有任何特定类型),它保留对多个帧的引用。当其中一个帧从菜单或您所拥有的内容接收到退出事件时,它调用self.parent.broadcast_退出(),它向它保存的引用的每个帧发送一个quit事件。在
这种方式在某种程度上表达了视图控制器分离,其中帧是视图的一部分,父对象是告诉我何时关闭控制器父对象也可以很好地封装连接断开,因为它可以随时了解哪些帧已经关闭以及何时关闭。您可以保留有关如何在帧本身中分解视图的详细信息,然后可以在拆分期间将“我完成”消息发送回控制器,从而在父对象侧触发一些最终的拆分。在
请参阅wx.PostEvent和Custom Event Classes的文档。(事件是用non-blocking GUI表示跨窗口消息的一种很好的规范化方法。)
我通常在关闭框架之前使用close按钮的事件处理程序来关闭连接和其他什么。如果要捕捉右上角的“x”按钮,则需要绑定到EVT_CLOSE。不幸的是,当你这么做的时候,你需要调用你的frame的Destroy()方法而不是它的Close()方法,否则你将陷入一个无限循环。在
不完全确定你在这里遇到了什么问题,但我会在黑暗中试着假设这是一个程序组织/设计问题。在
可能还有一些我不熟悉的更好的方法,但我会尝试这样做:创建一个“父”对象(不必有任何特定类型),它保留对多个帧的引用。当其中一个帧从菜单或您所拥有的内容接收到退出事件时,它调用self.parent.broadcast_退出(),它向它保存的引用的每个帧发送一个quit事件。在
这种方式在某种程度上表达了视图控制器分离,其中帧是视图的一部分,父对象是告诉我何时关闭控制器父对象也可以很好地封装连接断开,因为它可以随时了解哪些帧已经关闭以及何时关闭。您可以保留有关如何在帧本身中分解视图的详细信息,然后可以在拆分期间将“我完成”消息发送回控制器,从而在父对象侧触发一些最终的拆分。在
请参阅wx.PostEvent和Custom Event Classes的文档。(事件是用non-blocking GUI表示跨窗口消息的一种很好的规范化方法。)
我通常在关闭框架之前使用close按钮的事件处理程序来关闭连接和其他什么。如果要捕捉右上角的“x”按钮,则需要绑定到EVT_CLOSE。不幸的是,当你这么做的时候,你需要调用你的frame的Destroy()方法而不是它的Close()方法,否则你将陷入一个无限循环。在
相关问题 更多 >
编程相关推荐