這篇文章主要介紹了如何使用Qt自定義控件實(shí)現(xiàn)圓圈加載進(jìn)度條,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
站在用戶的角度思考問題,與客戶深入溝通,找到高平網(wǎng)站設(shè)計(jì)與高平網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋高平地區(qū)。
思路:畫一個(gè)占270度的圓弧,然后定義一個(gè)定時(shí)器,定時(shí)旋轉(zhuǎn)坐標(biāo)系,實(shí)現(xiàn)旋轉(zhuǎn)的效果。圓弧需要使用漸變色,實(shí)現(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);// 定時(shí)旋轉(zhuǎn)坐標(biāo)系 timer->start(3);//定時(shí)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);}
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何使用Qt自定義控件實(shí)現(xiàn)圓圈加載進(jìn)度條”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!