在Windows下的VsCode wxPython应用程序中,我将close事件绑定到我的函数,如下所示:
import wx
class MyFrame(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, title = title, pos = (150, 0))
self.Bind(wx.EVT_CLOSE, self.OnClose)
# Other stuff ...
def OnClose(self, event):
print("closing")
self.Destroy()
app = wx.App()
top = MyFrame("My App")
top.Show()
app.MainLoop()
print("done")
现在,我可以看到,当我关闭顶层窗口(wxFrame
)时,会出现这样的消息:closing
和done
消息出现。窗口本身也消失了。
但是VsCode认为应用程序仍在运行,因为它仍然具有可用的调试控件:
和运行它的控制台(Python调试控制台)不会返回提示。直到我单击“停止”按钮,命令提示符才会重新出现在该控制台中。
有趣的是,如果我运行VsCode的应用程序 outside ,它会正确退出,返回到命令提示符。
答案 0 :(得分:1)
请尝试wx.Exit()
,以防万一您仍在打开/运行某些东西而没有意识到。
wx.Exit() 调用wx.App.OnExit之后退出应用程序。
仅在紧急情况下使用:通常应删除顶层框架(在删除所有其他框架之后)以终止应用程序。参见wx.CloseEvent和wx.App。