Qt自定義控件實現(xiàn)圓圈加載進(jìn)度條
本文實例為大家分享了Qt實現(xiàn)圓圈加載進(jìn)度條的具體代碼,供大家參考,具體內(nèi)容如下
先看效果圖:

思路:畫一個占270度的圓弧,然后定義一個定時器,定時旋轉(zhuǎn)坐標(biāo)系,實現(xiàn)旋轉(zhuǎn)的效果。圓弧需要使用漸變色,實現(xiàn)顏色越來越淺的效果
關(guān)鍵代碼: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);// 定時旋轉(zhuǎn)坐標(biāo)系
timer->start(3);//定時3毫秒
}
CMProcessBar1::~CMProcessBar1()
{
delete ui;
}
void CMProcessBar1::updaterRotation(){ //循環(huán)360度旋轉(zhuǎn)坐標(biāo)系
rotation++;
if(rotation == 360){
rotation = 0;
}
update();
}
void CMProcessBar1::paintEvent(QPaintEvent *event){//根據(jù)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);
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言標(biāo)準(zhǔn)庫<math.h>和<setjmp.h>的實現(xiàn)
本文主要介紹了C語言標(biāo)準(zhǔn)庫<math.h>和<setjmp.h>的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
C++中volatile和mutable關(guān)鍵字用法詳解
這篇文章主要介紹了C++中volatile和mutable關(guān)鍵字用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
C語言中關(guān)于庫函數(shù) qsort 的模擬實現(xiàn)過程
庫函數(shù)的模擬實現(xiàn)有利于我們?nèi)ド钊肓私膺@個函數(shù)內(nèi)部是怎樣實現(xiàn)的,以及學(xué)習(xí)它的算法,使我們更加了解這個函數(shù)該怎樣去使用,接下來我將詳細(xì)的介紹qsort的應(yīng)用及用法,并且用代碼模擬實現(xiàn)它們的功能2021-09-09
Qt網(wǎng)絡(luò)編程實現(xiàn)TCP通信
這篇文章主要為大家詳細(xì)介紹了Qt網(wǎng)絡(luò)編程實現(xiàn)TCP通信,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08
C++中用substr()函數(shù)消除前后空格的解決方法詳解
本篇文章是對C++中用substr()函數(shù)消除前后空格的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
OpenCV+Qt實現(xiàn)圖像處理操作工具的示例代碼
這篇文章主要介紹了利用OpenCV+Qt實現(xiàn)圖像處理操作工具,可以實現(xiàn)雪花屏、高斯模糊、中值濾波、毛玻璃等操作,感興趣的可以了解一下2022-08-08

