2016-02-10 63 views
1

我正在用Mac OS X使用接口(接口爲wxPython)在Python中執行一個新項目。首先,我創建一個用於在不同的時間序列算法之間進行選擇的界面,然後,當算法結束時,我想在圖形中顯示新的時間序列。如何創建和銷燬wx.App?

對於此圖(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是包含了所需的一切ploting類。

我創建第二個框架作爲另一個框架的子框架,因此,當我關閉主界面時,圖形會關閉,但程序仍在後臺運行。

太感謝你了,我已經嘗試了很多東西,比如,在主界面ploting,但我還沒有獲得成功......

回答

1

你創造200個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() 
+0

太謝謝你了! –