在抛出' Swig :: DirectorMethodException'的实例后,底层的C / C ++对象被删除了。

时间:2015-07-06 09:59:28

标签: python qt pyqt pyqtgraph gnuradio

我正在编辑GNURadio中qt的顶部块。当我生成qt文件时,在顶部块中我想添加一个pyqtgraph GraphicsWindow,它由我的Plot.py块创建并返回。
这是生成的top_block.py

class top_block(gr.top_block, Qt.QWidget):

    def __init__(self):
        gr.top_block.__init__(self, "Top Block")
        Qt.QWidget.__init__(self)
        self.top_widget = Qt.QWidget()
        self.top_scroll.setWidget(self.top_widget)
        self.top_layout = Qt.QVBoxLayout(self.top_widget)
        self.top_grid_layout = Qt.QGridLayout()
        self.top_layout.addLayout(self.top_grid_layout)

Plot.py内,我创建了一个pyqtgraphicsWindow并将图形窗口返回到top_block.py,如图所示

class Plot(gr.sync_block):
    def qtplot(self):
    print "inside qtplot"
    self.win = pg.GraphicsWindow()
    return self.win

我在top_block.py收到并尝试添加到top_layout

 self.Plot_0 = gnuradio.input.Plot.Plot(1,1,1)
 self._plot_win=self.Plot_0.qtplot()
 self.top_layout.addWidget(self._plot_win)

然而它给了我一个RuntimeError:

  

底层C / C ++对象已被删除,在抛出' Swig :: DirectorMethodException'

的实例后调用终止

我尝试直接在topblock的GraphicsWindow添加init,但效果很好。

0 个答案:

没有答案