本文实例为大家分享了Qt实现圆圈加载进度条的具体代码,供大家参考,具体内容如下
先看效果图:
思路:画一个占270度的圆弧,然后定义一个定时器,定时旋转坐标系,实现旋转的效果。圆弧需要使用渐变色,实现颜色越来越浅的效果
关键代码:CMProcessBar1.cpp
CMProcessBar1: CMProcessBar1 (QWidget *父母): QWidget(父), ui(新ui:: CMProcessBar1) { ui→setupUi(这个); QTimer *计时器=新QTimer; 连接(计时器,QTimer::超时,updaterRotation);//定时旋转坐标系 计时器→开始(3);//定时3毫秒 } CMProcessBar1:: ~ CMProcessBar1 () { 删除用户界面; } 空白CMProcessBar1: updaterRotation(){//循环360度旋转坐标系 旋转+ +; 如果(旋转==360){ 旋转=0; } update (); } 空白CMProcessBar1: paintEvent (QPaintEvent *事件){//根据QPaintPath画出渐变色的圆弧 int宽度=这→宽度(); int高度=这→高度(); int一边=qMin(宽度、高度); QPainter画家(这个); 画家。setRenderHints (QPainter::抗锯齿| QPainter: TextAntialiasing); 画家。翻译(宽/2,高/2); 画家。规模(边/200.0,边/200.0); QConicalGradient草(QPoint (0, 0), 0); gra.setColorAt (0, QColor (" # 3 bb6fe ")); gra.setColorAt (QColor (" # FFFFFF ")); QBrush刷(gra); int x射线检验=40; int支持者=5; QRect矩形(-radis -radis, x射线检验* 2,x射线检验* 2); QPainterPath路径; 路径。arcTo(矩形,0,270); QPainterPath子路径; subPath.addEllipse(矩形。调整(赛德,帮派成员,帮派成员,帮派成员)); 路径=path-subPath; painter.setBrush(刷);//QColor (“# 66 cfff”) painter.setPen (Qt:: NoPen); painter.rotate(旋转); painter.drawPath(路径); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。