当我点击一个按钮时,我想在graphicsLayoutWidget中添加大约200个图。但现在gui冻结了大约10秒钟。 我怎么能避免这种情况。
答案 0 :(得分:2)
这是pyqtgraph中的一个缺陷。
看起来大部分初始化时间都用于创建上下文菜单。 PlotItem .__ init__和ViewBox .__ init__都有" enableMenu"参数,但将它们设置为False只会使菜单停止显示,并且不会阻止它们被创建。
因此,解决此问题的最简单方法是简单地避免创建菜单,更好的方法是推迟菜单创建,直到用户右键单击绘图。您可以通过查看以下代码来尝试前一种解决方案:https://github.com/lcampagn/pyqtgraph/tree/deferred_menu
在该代码下,以下示例运行得更快:
import pyqtgraph as pg
w = pg.GraphicsWindow()
for i in range(20):
for j in range(20):
w.addPlot(enableMenu=False)
w.nextRow()
后一种解决方案需要更广泛的改变。通过避免显示AxisItems
可以进一步提高性能