2016-04-24 21 views
1

QGraphicsWidget内にQGraphicsViewを表示しようとしていますが、動作させることができません。QGraphicsWidgetにQGraphicsViewを追加する

QGraphicsWidgetsがすべてQGraphicsSceneに追加され、各ウィジェットが独自のQGraphicsSceneとQGraphicsViewを持つ、これが私が達成したいことです。 enter image description here 大きなボックスはメインビューを表し、小さなボックスはそれぞれ独自のビューとシーンを持つウィジェットを表します。

私の現在の実装では、次のエラーのため、動作しません

:私はこれを実装しようとした

self.scene = QtGui.QGraphicsScene(self) 
self.view = QtGui.QGraphicsView(self.scene) 
self.view.setRenderHint(QtGui.QPainter.Antialiasing) 

self.setLayout(QtGui.QGraphicsLinearLayout(Qt.Vertical)) 
self.layout().addItem(self.view) 

QGraphicsWidgetのサブクラスで

TypeError: QGraphicsLinearLayout.addItem(QGraphicsLayoutItem): argument 1 has unexpected type 'QGraphicsView'

私の実装QGraphicsLayoutItemが見つかりましたが、QGraphicsViewをどこにでも置くことができませんでした。

何か助けていただければ幸いです。

答えて

2

関数QGraphicsLinearLayout.addItemは、QGraphicsWidgetパラメータを想定しており、通常のQWidgetQGraphicsView)を渡しています。

QGraphicsWidgetにラップするために特別に設計されたクラスQGraphicsProxyWidgetを使用できます。

私は手にはQt + Pythonのを持っていないが、私は次のようになりますと思う:

proxy = parentView.addWidget(nestedView) # QWidget -> QGraphicsWidget 
self.layout().addItem(proxy) 
関連する問題