http://hui.sohu.com/infonews/article/6337062092645859328
形进度条
简介
波形进度条---即类似水波一样效果的进度条。进度条大家都见过吧,平常生活中使用到的软件基本都有进度条,用来显示某个进程或者操作的实际进度,可以很好的展现软件人性化设计。
本次要分享的是用C++/Qt实现的一个水波进度条效果,感觉效果还可以,所以分享给大家。
实际效果
水波进度条效果
可以看到,我这里设置了2种模式,文字模式和数字模式。之所以会有文字模式,因为看到了百度贴吧在加载时也会有类似的效果,不知道大家有没发现,没有发现可以打开手机百度贴吧,当加载某一项内容时会出现和我上述效果一样的内容。
实现步骤
这里先给大家说说实现步骤,这样心里会很清楚:
创建新的工程;
新建一个Widget类,作为水波纹实体类;
在上述类中的paintEvent事件中进行绘制;
在外部使用;
原理
波形进度条核心是在绘制圆,通过在绘制事件中控制圆的角度以及方式达到了这样的效果。
波浪线的绘制,波浪线的绘制使用到了数学中的sin曲线:
y=A(sin ωx+φ)+k
主要使用该函数进行控制绘制。
实现步骤
新建一个空工程名字随意。
新建一个波形类,比如叫''WaveProgress"
波形类
上述图是波形图类的头文件部分,怎么样,是不是很清晰啊,注释都很详细。主要函数也就2个。
接着实现重要的绘制函数:
核心绘制算法
这里主要看核心绘制算法就可以了。其余可以看我的工程源码。到时候私信关键字就可以了。
核心源码很简单吧,好好复习下数学中的那2个公式就知道什么意思了。其余函数不说了。
使用
上述自定义了一个Wiget,使用时仍然和上一篇将的一样,直接选择提升即可。
使用方法
重点