Qt自定义控件实现线条型加载条分享!

本文实例为大家分享了Qt自定义控件实现线条型加载条的具体代码,供大家参考,具体内容如下

上效果图:

Qt自定义控件实现线条型加载条

思路:先画一个线条,然后旋转坐标系再画其他线条,突出颜色的线条可以画死再旋转,也可以按照角度递增让特定线画突出颜色(这里使用的是这种)。

  LoadingBarA::LoadingBarA(QWidget *parent) :    QWidget(parent)  {    timer = new QTimer(this); //定时器    timer->setInterval(50);    connect(timer,QTimer::timeout,this,[=](){      if(pointRect<=rectCount){        pointRect++;      }else{        pointRect = pointRect%rectCount;      }      update();    });  }    void LoadingBarA::paintEvent(QPaintEvent *event){ //重绘事件    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);      float degree = 360.0/rectCount; //rectCount:共有多少根线条      for(int i =0;i<rectCount;i++){      painter.rotate(degree);      if(i == pointRect - 1){        drawRect(&painter,darkColor); //突出颜色      }else{        drawRect(&painter,lightColor);//非突出颜色      }    }  }    void LoadingBarA::drawRect(QPainter* painter,QColor color){//画线条    painter->save();    painter->setPen(Qt::NoPen);    painter->setBrush(color);    QRect rect(arcLength,-rectHeight/2,rectWidth,rectHeight);    painter->drawRoundedRect(rect,rectHeight/2,rectHeight/2);    painter->restore();  }    void LoadingBarA::setDarkColor(QColor tempColor){    this->darkColor = tempColor;    update();  }    void LoadingBarA::setLightColor(QColor lightColor){    this->lightColor = lightColor;    update();  }    void LoadingBarA::setRectWidth(int l){    this->rectWidth = l;    update();  }    void LoadingBarA::setRectHeight(int l){    this->rectHeight = l;    update();  }    void LoadingBarA::setArcLength(int l){    this->arcLength = l;    update();  }    void LoadingBarA::setRectCount(int l){    this->rectCount = l;    update();  }    void LoadingBarA::startLoading(){ //设置开始    timer->start();  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

—-想了解Qt自定义控件实现线条型加载条分享!全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/483485.html

(0)
上一篇 2020年11月10日
下一篇 2020年11月10日

精彩推荐