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 が typeSceneCanvasではなくtype であるという予想されるエラーが表示されますQWidget。Iprint(vispyCanvas)を実行すると が出力され<Vispy canvas (PyQt4 (qt) backend) at 0x142bcb00L>ます。そのため、それまたはその属性の 1 つを QWidget オブジェクトとして扱うことが可能であると思われます。

4

1 に答える 1

12

答えは簡単です。

win.setCentralWidget(vispyCanvas.native)

vispy が Qt をバックエンドとして使用している限りCanvas.native、基になるQGLWidget.

于 2015-01-14T00:15:54.840 に答える