PYQTGraph应用在鼠标移动时变慢
我有一个多线程的应用程序(通过pyqt实现),它可以实时绘制数据(数据在第二个线程中处理,然后通过pyqt信号传递给GUI线程进行绘制)。当我把鼠标放在应用程序上时,它会继续以全速运行(通过调用app.processEvents()
之间的时间差来测量)。但是一旦我开始移动鼠标,更新的速度就会变得非常慢,等我停止移动鼠标后,速度又会恢复正常。
有没有人知道我该如何解决这个问题或者调试一下呢?
代码比较长而且复杂,所以我不想在这里贴出来。谢谢!
1 个回答
2
你可能在场景中有一些可以接收鼠标输入的元素,但光凭这些信息很难判断具体情况,最好能看到代码。特别是,要小心那些复杂的可点击图形,因为计算鼠标光标与这些复杂形状的交集是非常耗费性能的。
解决性能问题的最好(有人说是唯一)方法就是对你的应用进行性能分析:运行 python -m cProfile -s cumulative your_script.py
一次,不要移动鼠标,再运行一次,期间多移动鼠标,最后对比输出结果,看看解释器花了多少时间在什么地方。