如何在PyQt中嵌入Vispy图形?

6
我正在尝试将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个回答

12
答案很简单:
win.setCentralWidget(vispyCanvas.native)
只要vispy使用Qt作为其后端,那么Canvas.native就是底层的QGLWidget

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接