当它停止时,VsCode似乎会继续运行wxPython应用程序

时间:2019-03-03 02:29:32

标签: visual-studio-code wxpython

在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)时,会出现这样的消息:closingdone消息出现。窗口本身也消失了。

但是VsCode认为应用程序仍在运行,因为它仍然具有可用的调试控件:

enter image description here

和运行它的控制台(Python调试控制台)不会返回提示。直到我单击“停止”按钮,命令提示符才会重新出现在该控制台中。

有趣的是,如果我运行VsCode的应用程序 outside ,它会正确退出,返回到命令提示符。

1 个答案:

答案 0 :(得分:1)

请尝试wx.Exit(),以防万一您仍在打开/运行某些东西而没有意识到。

  

wx.Exit()   调用wx.App.OnExit之后退出应用程序。

     

仅在紧急情况下使用:通常应删除顶层框架(在删除所有其他框架之后)以终止应用程序。参见wx.CloseEvent和wx.App。