背景
因为项目开发需求,需要用Qt实现在界面中直观显示惯性-卫星组合导航的步骤流程图这样一个功能,要求有直观的、动态的流水式动画。
笔者参考了网上的一些实现方式,有用画笔画线条用定时器更新的,有用粒子动画的,有使用贴图动态更新的等等,普遍较为繁琐,并且最大的问题是占用运行资源过多,项目本身具有接收串口的大量高频数据并同时在多个窗口实时绘制数据曲线的需求,需要占用大量运行资源,对代码运行实时性和稳定性要求非常高,如果再加上流程图动画一直在前台运行,会影响整体代码的性能。
笔者剑走偏锋,使用“等待进度条”来实现这个流水动画,运行效果如下:
【Qt原创开源项目】不占资源的流水式动态流程图
实现方法
这个实现方法不用敲一行代码,直接在ui文件中拖动进度条,也就是QProcessBar组件即可:
注意将进度条设置为循环流动式的参数设置为minimum和maximum均设置为0,value设置为-1
关于进度条的内容参考笔者的另一篇帖子【Qt原创开源项目】演示三种进度条QProcessBar