欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt自定義控件實現(xiàn)線條型加載條

 更新時間:2019年12月20日 11:20:43   作者:parkchorong  
這篇文章主要為大家詳細介紹了Qt自定義控件實現(xiàn)線條型加載條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Qt自定義控件實現(xiàn)線條型加載條的具體代碼,供大家參考,具體內(nèi)容如下

上效果圖:

思路:先畫一個線條,然后旋轉(zhuǎn)坐標系再畫其他線條,突出顏色的線條可以畫死再旋轉(zhuǎn),也可以按照角度遞增讓特定線畫突出顏色(這里使用的是這種)。

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • c++中的內(nèi)聯(lián)函數(shù)inline用法實例

    c++中的內(nèi)聯(lián)函數(shù)inline用法實例

    在本篇文章里小編給大家整理的是關于c++中的內(nèi)聯(lián)函數(shù)inline用法實例以及相關知識點,有需要的朋友們學習下。
    2019-09-09
  • C語言實現(xiàn)簡單彈球游戲

    C語言實現(xiàn)簡單彈球游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單彈球游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 深入探索C++中stack和queue的底層實現(xiàn)

    深入探索C++中stack和queue的底層實現(xiàn)

    這篇文章主要介紹了C++中的stack和dequeue的底層實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • C++二叉搜索樹模擬實現(xiàn)示例

    C++二叉搜索樹模擬實現(xiàn)示例

    本文主要介紹了C++二叉搜索樹模擬實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • C語言解線性方程的四種方法

    C語言解線性方程的四種方法

    這篇文章主要介紹了C語言解線性方程的四種方法,大家參考使用,學習線性代數(shù)的同學一定能用到
    2013-11-11
  • 關于C++面向?qū)ο笤O計的訪問性問題詳解

    關于C++面向?qū)ο笤O計的訪問性問題詳解

    這篇文章主要給大家介紹了關于C++面向?qū)ο笤O計的訪問性問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-09-09
  • 詳解C++中的內(nèi)存同步模式(memory order)

    詳解C++中的內(nèi)存同步模式(memory order)

    這篇文章主要介紹了C++中的內(nèi)存同步模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 一起來學習C++的構造和析構

    一起來學習C++的構造和析構

    這篇文章主要為大家詳細介紹了C++構造和析構,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++使用redis的實例詳解

    C++使用redis的實例詳解

    這篇文章主要介紹了C++使用redis的實例詳解的相關資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • QT6中QTextcodec頭文件找不到的解決方法

    QT6中QTextcodec頭文件找不到的解決方法

    本文主要介紹了QT6中QTextcodec頭文件找不到的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02

最新評論