如何将场景添加到先前定义的 QGraphicsView

问题描述

我有一个预定义的 GUI,它作为 .ui 文件加载:

def __init__(self):
    # Initialise main program with GUI
    super(MainWindow,self).__init__()
    uic.loadUi('fg_control_gui_2.ui',self)

在该 ui 文件中,我定义了一个 QGraphicsView,它在 GUI 的 .py 版本中如下所示:

    self.ch1_oszi_view = QtWidgets.QGraphicsView(self.centralwidget)
    self.ch1_oszi_view.setGeometry(QtCore.QRect(10,450,361,261))
    self.ch1_oszi_view.setobjectName("ch1_oszi_view")

现在我想添加一个 QGraphicsScene 作为画布,这样我就可以在我的 GUI 中显示一个应该是这样完成的图:

scene = QtWidgets.QGraphicsScene()
view = QtWidgets.QGraphicsView(scene)

我现在的问题是,如何像在上一个示例的第二行代码中那样将场景交给先前定义的 QGraphicsView ?

解决方法

您必须使用 setScene()QGraphicsView 方法:

scene = QtWidgets.QGraphicsScene()
self.ch1_oszi_view.setScene(scene)