如何在PyQt中嵌入vispy图?

时间:2015-01-13 22:32:27

标签: python plot pyqt4 pyside vispy

我正在尝试将一个Vispy情节(更具体地说,一个Vispy SceneCanvas)作为QWidget嵌入到PyQt4中。我认为答案是这样的:

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对象。

1 个答案:

答案 0 :(得分:10)

答案很简单:

win.setCentralWidget(vispyCanvas.native)

只要vispy使用Qt作为后端,Canvas.native就会引用基础QGLWidget