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

时间:2014-04-01 02:13:51

标签: python-2.7 wxpython

我试图在python的unittest框架的tearDown方法中关闭一个wxPython框架。 这是我目前正在尝试使用setUp和tearDown框架的代码。

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”按钮一样。

3 个答案:

答案 0 :(得分:0)

您可以试用Destroy()方法吗?也许这有用。

答案 1 :(得分:0)

关闭是关闭框架的正确方法,但是当调用MainLoop时,你的代码将被卡在无限的gui事件循环中,直到所有框架都关闭,这必须通过手动点击“X”来实现,因为它不会到达你的致电关闭。

答案 2 :(得分:0)

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

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

    def tearDown(self):
        self.frame.Destroy()

这完全退出程序并允许我在两者之间进行单元测试。