Pyqtgraph 绘图卡顿问题解决

发布于:2022-12-18 ⋅ 阅读:(1259) ⋅ 点赞:(1)

首先想着百度解决问题,但是相关问题很少。我的问题是将两个PlotWidget添加到一个窗口内,随着时间推进(尤其最小化后再切入程序)绘图卡顿,但是两张绘图窗只有一个卡顿,但我针对两个窗口的绘图函数和计算函数都是一致的,按理讲应该会同时卡顿或同时运行良好,百思不得其解,尤其对卡顿的窗口单击右键可以看到绘图可以继续正常进行,说明数据源没有问题。网上看到了和我情况比较类似的是https://blog.csdn.net/sinat_23106229/article/details/82143391?ops_request_misc=&request_id=&biz_id=102&utm_term=pyqtgraph%20%E5%88%B7%E6%96%B0%E6%85%A2&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-82143391.142^v47^pc_rank_34_ctr25,201^v3^control_1&spm=1018.2226.3001.4187icon-default.png?t=M85Bhttps://blog.csdn.net/sinat_23106229/article/details/82143391?ops_request_misc=&request_id=&biz_id=102&utm_term=pyqtgraph%20%E5%88%B7%E6%96%B0%E6%85%A2&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-82143391.142^v47^pc_rank_34_ctr25,201^v3^control_1&spm=1018.2226.3001.4187

简述一下我的尝试过程吧。

由于目标是开发一个自动化测试小工具(实时监控用),一开始绘图非常卡顿,后得知绘图和计算不要放到一个线程里,于是将绘图留在主线程里,将计算放到子线程。为了持续监控所以一开始就使用了while。所以首先排除了上述文章中的方案二选择了方案一,但并未生效。

再继续寻找解决方案,有看到说更新数据后需要使用processEvents()进行更新的,尝试后同样未解决问题。

后根据文章:

https://blog.csdn.net/xiezhongyuan07/article/details/79924902?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4-79924902-blog-122223540.t5_refersearch_landing&spm=1001.2101.3001.4242.3&utm_relevant_index=7icon-default.png?t=M85Bhttps://blog.csdn.net/xiezhongyuan07/article/details/79924902?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-4-79924902-blog-122223540.t5_refersearch_landing&spm=1001.2101.3001.4242.3&utm_relevant_index=7

QT对界面的调整有很多种形式,如果发现界面样式不正常,通过缩放窗口,或者某项鼠标操作才正常,可能是你的窗口没有正常刷新。

猜测窗口没有正常刷新,故在绘图函数中添加update(),成功解决绘图卡顿的问题。但是鼠标左键拖拽和鼠标滚轮进行缩放相对初始情况来说会稍有卡顿,对我来说无伤大雅,仍需解决问题的话可以继续尝试使用上述文章中提到的的其他函数。


网站公告

今日签到

点亮在社区的每一天
去签到