我有一個使用matplotlib和QT4Agg後端的Python基本圖像查看器程序。 其中一個功能是從2D-FFT生成2D功率譜,並將其放置在一個圖中的第二個圖中。我想添加的是一個按鈕,它將FFT圖像彈出並將其彈出到另一個窗口,以便更詳細地分析它。pylab.show()「QCoreApplication :: exec:事件循環已經在運行」
我的代碼目前正在做的一切,我需要它,但它也提高某種形式的QT異常或警告終端(這是被在OS X上運行):
「QCoreApplication :: EXEC:事件循環已經運行」
def popout(event):
nfig, nfftax = pylab.subplots(1, 1)
imgtoconv = getArr(files[imgindex])
fftimg = np.abs(fftpack.fftshift(fftpack.fft2(imgtoconv)))**2
nfftax.imshow(np.log10(fftimg), cmap=cm.Greys_r)
pylab.show()
我已經通過Button.on_clicked(跳隙) 定義並鏈接到跳隙()函數在程序的主循環中的按鈕的圖被啓動,並且具有兩個所示地塊。所以pylab.show()已經被調用過一次
我遇到的問題似乎是我再次調用pylab.show(),它正在生成異常或警告事件循環已經啓動。
我嘗試使用pylab.draw()而不是pylab.show(),但是當我這樣做,按一下按鈕不會顯示新圖
有一種簡單的方法來禁止這種警告?還是有另一種方法來產生新的圖形,並使其可見而不回想pylab.show()?
編輯:我也嘗試添加nfig.canvas.draw()後創建新圖和新軸,然後在popout()函數結束時調用pylab.draw()。這仍然沒有顯示新的數字onclick
EDIT2:切換到使用TKAgg後端和調用pylab.show()使問題消失。任何想法爲什麼這只是QT4Agg後端的一個問題?
我必須在某個時候檢查fi這個工程。 我已經改變了我的代碼,以通過PyQt4在QT中嵌入mpl – 2015-03-24 16:40:51