如何创建和销毁wx.App?

How to create and destroy wx.App?

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

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

当我显示图表windows并关闭它时,一切正常,但现在出现了问题。我想关闭主 windows(它显示不同的时间序列算法),但我从来没有关闭它......当我强制关闭那个 windows 时,我得到 139 和 143 pythos 错误.

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

主要 windows 正在通过以下代码创建:

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

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

图表 windows 是通过以下代码创建的:

app2 = wx.App()
frame = graphs.BarsFrame()
frame.Show()
app2.MainLoop()

BarsFrame class 包含绘图所需的一切。

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

非常感谢,我尝试了很多方法,比如在主界面中绘图,但我没有成功...

您要创建 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()