如何将pyside QGraphicscene添加到BoxLayout

2024-06-02 08:11:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个PySide2.QtWidgets.QVBoxLayout和一个PySide2.QtWidgets.QGraphicsScene,我想把GraphicsScene放在布局中。以下是我代码的一部分:

self.cn_graph = QtWidgets.QGraphicsScene()
[...]
self.ly_bottom = QtWidgets.QVBoxLayout()
[...]
self.ly_bottom.addWidget(self.cn_graph)

但我得到了这个错误:

TypeError: 'PySide2.QtWidgets.QBoxLayout.addWidget' called with wrong argument types:
  PySide2.QtWidgets.QBoxLayout.addWidget(QGraphicsScene)
Supported signatures:
  PySide2.QtWidgets.QBoxLayout.addWidget(PySide2.QtWidgets.QWidget, int = 0,         
  PySide2.QtCore.Qt.Alignment = Default(Qt.Alignment))
  PySide2.QtWidgets.QBoxLayout.addWidget(PySide2.QtWidgets.QWidget)

我不知道是否有可能在一个boxlayout中有一个graphicsscene,所以任何想法都是受欢迎的


Tags: selflycnqtgraphalignmentpyside2bottom
1条回答
网友
1楼 · 发布于 2024-06-02 08:11:55

QGraphicscene不是一个小部件,它不是一个可视元素,而是一个绘制处理程序,您应该使用QGraphicsView:

self.cn_scene_graph = QtWidgets.QGraphicsScene()
self.cn_view_graph = QtWidgets.QGraphicsView(self.cn_scene_graph)
# ...
self.ly_bottom = QtWidgets.QVBoxLayout()
# ...
self.ly_bottom.addWidget(self.cn_view_graph)

相关问题 更多 >