我正在尝试在QGraphicsWidget中显示QGraphicsView,但我似乎无法让它工作。
这就是我想要实现的目标,QGraphicsWidgets全部添加到QGraphicsScene中,每个小部件都有自己的QGraphicsScene和QGraphicsView。 大框表示主视图,较小的框表示小部件,每个小部件都有自己的视图和场景。
由于以下错误,我当前的实现无效:
TypeError:QGraphicsLinearLayout.addItem(QGraphicsLayoutItem): 参数1具有意外类型'QGraphicsView'
我在QGraphicsWidget
:
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)
我试图用QGraphicsLayoutItem实现它,但是我找不到任何地方可以使用QGraphicsView。
任何帮助都将不胜感激。
答案 0 :(得分:3)
函数QGraphicsLinearLayout.addItem
需要一个QGraphicsWidget
参数,而您传递的是正常的QWidget
(QGraphicsView
)。
您可以使用专门用于将QGraphicsProxyWidget
包裹到QWidget
的课程QGraphicsWidget
。
我手上没有Qt + Python,但我认为它应该如下:
proxy = parentView.addWidget(nestedView) # QWidget -> QGraphicsWidget
self.layout().addItem(proxy)