当我单击一个按钮时,我想在 graphicsLayoutWidget 中添加大约 200 个图。但是现在 gui 冻结了大约 10 秒。我怎样才能避免这种情况。
问问题
441 次
1 回答
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 可以进一步提高性能
于 2013-10-25T16:04:56.667 回答