Qt自定义控件实现圆圈加载进度条

  

本文实例为大家分享了Qt实现圆圈加载进度条的具体代码,供大家参考,具体内容如下

  

先看效果图:

  

 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(路径);         }      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Qt自定义控件实现圆圈加载进度条