2013-08-26 92 views
1

我有一個基本的tkinter GUI運行幾個輸入和一個提交按鈕。當提交按鈕被擊中,一些數據被創建,並且曲線應該生成/保存:當試圖使用matplotlib保存圖像時,Python tkinter凍結

import matplotlib.pyplot as plt 
plt.plot(x1,y1,'go',x2,y2,'bo') 
plt.savefig(filename) 
plt.clf() 

情節並不需要與matplotlib顯示;它只需要被保存。然而,我Tkinter的GUI死機達到此行時:

plt.plot(x1,y1,'go',x2,y2,'bo') 

另一個Tkinter的窗口,在這一點上彈出(一個空白的,灰色窗口標題爲「TK」)。似乎matplotlib以某種方式干擾tkinter。但是我不需要matplotlib來打開一個窗口(只需要一個圖表就可以保存),所以我對這種情況發生的原因感到困惑。 (順便說一句,我有兩個線程正在運行(一個更新進度條,一個做一些計算),但我確信這不應該影響任何東西)。

回答

2

您有多個互相干擾的主事件循環。無論是在你的GUI(examples)適當地嵌入matplotlib,或使用非交互式後端:當您導入pyplot要導入的說服功能(見Which is the recommended way to plot: matplotlib or pylab?)整體轉換,其中包括一個GUI系統

import matplotlib 
matplotlib.use('Agg') 
import matplotlib.pyplot as plt 
plt.plot(x1,y1,'go',x2,y2,'bo') 
plt.savefig(filename) 
plt.clf() 

互動tok

+0

謝謝隊友!得到它的工作 – kyphos