如何使用Qt自定义控件实现圆圈加载进度条-创新互联

这篇文章主要介绍了如何使用Qt自定义控件实现圆圈加载进度条,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站设计、程序开发、微网站、微信小程序定制开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的成都网站建设、成都网站制作、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体,具备承接不同规模与类型的建设项目的能力。

思路:画一个占270度的圆弧,然后定义一个定时器,定时旋转坐标系,实现旋转的效果。圆弧需要使用渐变色,实现颜色越来越浅的效果

关键代码:CMProcessBar1.cpp

CMProcessBar1::CMProcessBar1(QWidget *parent) :  QWidget(parent),  ui(new Ui::CMProcessBar1){  ui->setupUi(this);  QTimer *timer = new QTimer;  connect(timer,QTimer::timeout,this,updaterRotation);// 定时旋转坐标系  timer->start(3);//定时3毫秒}CMProcessBar1::~CMProcessBar1(){  delete ui;}void CMProcessBar1::updaterRotation(){ //循环360度旋转坐标系  rotation++;  if(rotation == 360){    rotation = 0;  }  update();}void CMProcessBar1::paintEvent(QPaintEvent *event){//根据QPaintPath画出渐变色的圆弧  int width = this->width();  int height = this->height();  int side = qMin(width, height);  QPainter painter(this);  painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);  painter.translate(width / 2, height / 2);  painter.scale(side / 200.0, side / 200.0);  QConicalGradient gra(QPoint(0,0),0);  gra.setColorAt(0,QColor("#3BB6FE"));  gra.setColorAt(1,QColor("#FFFFFF"));  QBrush brush(gra);  int radis = 40;  int sider = 5;  QRect rect(-radis,-radis,radis*2,radis*2);  QPainterPath path;  path.arcTo(rect,0, 270);  QPainterPath subPath;  subPath.addEllipse(rect.adjusted(sider, sider, -sider, -sider));  path = path-subPath;  painter.setBrush(brush);//QColor("#66CFFF")  painter.setPen(Qt::NoPen);  painter.rotate(rotation);  painter.drawPath(path);}

感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用Qt自定义控件实现圆圈加载进度条”这篇文章对大家有帮助,同时也希望大家多多支持创新互联网站建设公司,,关注创新互联行业资讯频道,更多相关知识等着你来学习!


网站栏目:如何使用Qt自定义控件实现圆圈加载进度条-创新互联
URL地址:http://azwzsj.com/article/goeoj.html