如何创建和销毁wx.App?

时间:2016-02-10 09:44:54

标签: python algorithm matplotlib interface wxpython

我正在使用接口(wxPython用于接口)使用MacOs X在Python中创建一个新项目。首先,我创建了一个用于在不同的时间序列算法之间进行选择的界面,然后,当算法结束时,我想在图表中显示新的时间序列。

对于这个图(matplotlib + wxPython),我想使用另一个与另一个不同的窗口。

当我显示图形窗口并关闭它时,一切正常,但问题就出现了。我想关闭主窗口(显示不同的时间序列算法),但我从未关闭它...当我强制关闭窗口时,我得到139和143个pythos错误。

我真的不知道为什么会这样。

主窗口由此代码创建:

topLayoutGuide

MyFrame1包含时间序列算法所需的一切。

图表窗口由此代码创建:

app = wx.App()
frame = interface.MyFrame1(None)
frame.Show()
app.MainLoop()

BarsFrame是包含绘图所需内容的类。

我将第二帧创建为另一帧的子帧,因此,当我关闭主界面时,图形将关闭,但程序仍在后台运行。

非常感谢你,我已经尝试了很多东西,比如在主界面上绘图,但我还没有成功......

1 个答案:

答案 0 :(得分:1)

您是否正在创建2个wx.App个实例?不要那样做。你的例子应该是一个简单的东西,如主wx.Frame和子情节框架。

请执行以下操作:

app = wx.App()
# main frame
frame = interface.MyFrame1(None)
frame.Show()

# plot frame, the correct parenting is important, this is not shown in your example
frame2 = graphs.BarsFrame(parent=frame)
frame2.Show()

app.MainLoop()