无法在较大的QApplication中连接pyqtgraph信号[关闭]

问题描述 投票:0回答:1

我正在使用pyqtgraph将可视化嵌入到我的应用程序中,特别是在侧面有一个PlotCurveItem的ScatterPlotItem,我计划在其中连接sigMouseMoved和sigClicked以启用嵌入式交互。为了方便起见,我创建了一个类scatter_plot_histogram。当我运行代码以测试可视化效果时:

    app = QtGui.QApplication([])
    mw = QtGui.QMainWindow()
    mw.resize(900,600)
    view = pg.GraphicsLayoutWidget()  ## GraphicsView with GraphicsLayout inserted by default
    mw.setCentralWidget(view)
    mw.show()

    ## create 2 areas to add plots
    w1 = view.addPlot()
    w2 = view.addPlot()
    test = scatter_plot_histogram(w1, w2, ['a1', 'a2'], [1, 2])

    app.exec_()  # Start QApplication event loop ***

这很好。但是,在较大的QApplication中,用户定义的(鼠标单击和鼠标悬停)嵌入式交互不起作用,而默认的嵌入式交互(平移和缩放功能)则起作用。我像这样添加小部件:

# Defined and placed here
self.view_widget = pg.GraphicsLayoutWidget()
self.analysis_grid.addWidget(self.view_widget, 1, 0, 2, 3)
...
# Fit to data here
w1 = self.view_widget.addPlot()
w2 = self.view_widget.addPlot()
scatter_plot_histogram(w1, w2, individual_items, item_frequency)

这将显示小部件,但我想,但是我无法像在独立设置中那样访问交互。我尝试过将视图小部件设置为中央小部件,但是仍然无法使用交互功能。我也尝试过制作w1和w2类变量(self.w1,self.w2),但是产生了相同的结果。打印语句表明,在较大的应用程序中根本不会调用这些方法。

关于如何进行这项工作的任何想法?

python pyqt pyqtgraph
1个回答
0
投票

我已经解决了这个问题。通过制作w1和w2类变量以及散点图本身,我可以使嵌入式交互起作用。

© www.soinside.com 2019 - 2024. All rights reserved.