【问题标题】:How to create and destroy wx.App?如何创建和销毁 wx.App?
【发布时间】:2016-05-20 14:12:38
【问题描述】:

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

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

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

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

这段代码正在创建主窗口:

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

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

并且图形窗口是由这段代码创建的:

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

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

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

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

【问题讨论】:

    标签: python algorithm matplotlib interface wxpython


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2012-12-10
      相关资源
      最近更新 更多