Python 2.7 如何以编程方式关闭wxPython框架?

Python 2.7 如何以编程方式关闭wxPython框架?,python-2.7,wxpython,Python 2.7,Wxpython,我试图在python的unittest框架的tearDown方法中关闭一个wxPython框架。 这是我目前试图用来设置和拆卸框架的代码 class ValidInputTest4(unittest.TestCase): def setUp(self): total_food_calories = wx.App() self.one = FoodCalories(None) total_food_calories.MainLoop()

我试图在python的unittest框架的tearDown方法中关闭一个wxPython框架。 这是我目前试图用来设置和拆卸框架的代码

class ValidInputTest4(unittest.TestCase):
    def setUp(self):
        total_food_calories = wx.App()
        self.one = FoodCalories(None)
        total_food_calories.MainLoop()

    def tearDown(self):
        self.one.Close()

此代码正确显示应用程序,但它无法完全关闭应用程序,就像用户手动单击右上角的“X”按钮一样。

您可以尝试
销毁()
方法吗?也许这是可行的。

关闭是关闭一个帧的正确方法,但是当调用MainLoop时,您的代码将被困在一个无限gui事件循环中,直到所有帧都关闭为止,这必须通过手动单击“X”来实现,因为它不会到达您的关闭调用。

我发现了问题。我不需要启动应用程序上的主循环。 我的工作代码现在是这个

class ValidInputTest4(unittest.TestCase):
    def setUp(self):
        self.app = wx.App()
        self.frame = FoodCalories(None)

    def tearDown(self):
        self.frame.Destroy()
这将干净地退出程序,并允许我在其间进行单元测试