python - 如何在 PyQt 中嵌入 vispy 图形?

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

最佳答案

答案很简单:

win.setCentralWidget(vispyCanvas.native)

只要 vispy 使用 Qt 作为其后端,那么 Canvas.native 就是指底层的 QGLWidget

关于python - 如何在 PyQt 中嵌入 vispy 图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27932721/

相关文章:

python - Opencv TypeError : points is not a numpy array, 既不是标量

python - 创建 flask-SQLAlchemy BaseQuery 对象的两种方法 - 只有一种有效,为什么?

python - PyQt:使用 QDataStream 保存 native QTreeWidgets

python - 打包的 python .app 文件崩溃,但打包的 python .sh 文件工作正常

r - 如何使用 dev.new() 在 knitr 小插图中显示图?

python - 更改变量值时的 PyQt 事件

java - 从 Jython 中引用 M2Crypto

python - 为什么 pandas dataframe 索引根据索引类型改变轴?

r - 如何在facet ggplot的空白区域定位注释文本

r - 在 R 中使用 ggplot 时,如何删除绘图区域周围的边距?