2015-01-13 138 views
5

我試圖嵌入到PyQt4作爲一個QWidget vispy陰謀(更具體地說,一個Vispy SceneCanvas)。我推測這個答案會是這樣的:如何在PyQt中嵌入vispy圖表?

from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
import vispy.mpl_plot as plt 

app = QApplication(sys.argv) 
win = QMainWindow() 
plt.plot([1,2,3,4], [1,4,9,16]) 
vispyCanvas=plt.show()[0] 
win.setCentralWidget(vispyCanvas) 

然而,當我嘗試這最後一行給我的預期誤差vispyCanvas是類型SceneCanvas而不是QWidget類型。當我print(vispyCanvas),它打印出<Vispy canvas (PyQt4 (qt) backend) at 0x142bcb00L>,這就是爲什麼我懷疑它應該是可以把它或它的一個屬性作爲QWidget對象。

回答

9

答案很簡單:

win.setCentralWidget(vispyCanvas.native) 

只要vispy被使用Qt作爲其後端,然後Canvas.native指底層QGLWidget