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

Qt使用QPainter實現(xiàn)自定義圓形進度條

 更新時間:2022年06月16日 09:11:09   作者:wendy_ya  
這篇文章主要介紹了Qt如何使用QPainter實現(xiàn)自定義圓形進度條功能,文中的示例代碼講解詳細,對我們學(xué)習(xí)Qt有一定的幫助,需要的可以參考一下

一、項目介紹

本文介紹利用QPainter實現(xiàn)自定義圓形進度條。

二、項目基本配置

新建一個Qt案例,項目名稱為“RoundprogressbarTest”,基類選擇“QWidget”,點擊選中創(chuàng)建UI界面復(fù)選框,完成項目創(chuàng)建。

三、UI界面設(shè)置

UI界面如下:

為簡單起見,這里只設(shè)計兩個控件:

序號名稱類型屬性
pushButtonQPushButtontext:Start
gridLayoutQGridLayout/

四、主程序?qū)崿F(xiàn)

4.1 roundprogressbar.h和roundprogressbar.cpp

由于roundprogressbar.h和roundprogressbar.cpp代碼量較大,這里不進行展示,僅作簡要說明。

函數(shù)如下:

    //設(shè)置初始角度,順時針逆時針
    void setdefault(int,bool);
    //設(shè)置外圈寬度
    void setOutterBarWidth(float);
    //設(shè)置內(nèi)圈寬度
    void setInnerBarWidth(float);
    //設(shè)置范圍
    void setRange(float, float);
    //設(shè)置當(dāng)前值
    void setValue(float);
    //設(shè)置外圈顏色
    void setOutterColor(const QColor&);
    //設(shè)置內(nèi)圈漸變色
    void setInnerColor(const QColor&,const QColor&);
    void setInnerColor(const QColor&);
    //設(shè)置默認文字顏色
    void setDefaultTextColor(const QColor&);
    //設(shè)置控制命令
    void setControlFlags(int);
    //設(shè)置顯示數(shù)字精度
    void setPrecision(int);

在構(gòu)造函數(shù)中進行了如下初始化設(shè)定:

    //設(shè)置初始角度,順時針逆時針
    setdefault(90,true);
    //設(shè)置默認外圈寬度
    setOutterBarWidth(18);
    //設(shè)置默認內(nèi)圈寬度
    setInnerBarWidth(16);
    //設(shè)置默認范圍
    setRange(0,100);
    //設(shè)置默認值
    setValue(75);
    //設(shè)置外圈顏色
    setOutterColor(QColor(233,248,248));
    //設(shè)置默認漸變色
    setInnerColor(QColor(49, 177, 190),QColor(133, 243, 244));
    //設(shè)置默認文字顏色
    setDefaultTextColor(QColor(49,177,190));
    //設(shè)置默認精度
    setPrecision(0);
    //設(shè)置內(nèi)圈默認文字樣式
    setInnerDefaultTextStyle(RoundProgressBar::percent);

設(shè)置初始化角度為90度,順時針,設(shè)置外圈寬度為18,內(nèi)圈寬度為18;設(shè)置默認范圍為0-100,設(shè)置默認值為75,設(shè)置外圈顏色、漸變色、文本顏色和默認精度為0(無小數(shù))設(shè)置內(nèi)圈文字樣式為percent(百分比樣式)。

4.2 widget.h頭文件

頭文件中引入roundprogressbar.h頭文件,按鈕點擊槽函數(shù)和定時器對應(yīng)的槽函數(shù)、timer對象和bar1對象:

private slots:
    void setText();
    void on_pushButton_clicked();

private:
    RoundProgressBar* bar1;
    QTimer timer;
     int i=0;

4.3 widget.cpp源文件

源文件中在構(gòu)造函數(shù)中定義圓形進度條和定時器,將定時器timeout信號和槽函數(shù)setText連接:

    //*********************** RoundProgressBar ************************
    bar1=new RoundProgressBar(this);
    bar1->setOutterBarWidth(20);
    bar1->setInnerBarWidth(20);
    bar1->setValue(0);//設(shè)置默認值為0
    bar1->setControlFlags(RoundProgressBar::all);
    ui->gridLayout->addWidget(bar1,0,0);

    //計時
    timer.setInterval(100);//設(shè)置計時間隔為0.1s
    connect(&timer,&QTimer::timeout,this,&Widget::setText);

在析構(gòu)函數(shù)中停止定時器:

Widget::~Widget()
{
    if(timer.isActive())
        timer.stop();
    delete ui;
}

兩個槽函數(shù)定義如下:

//點擊
void Widget::on_pushButton_clicked()
{
    timer.start();
}

void Widget::setText()
{
    bar1->setValue(i++);
    bar1->repaint();
    if(i>100)   //100停止
    {
        timer.stop();
    }
}

五、效果演示

完整效果如下:

到此這篇關(guān)于Qt使用QPainter實現(xiàn)自定義圓形進度條的文章就介紹到這了,更多相關(guān)Qt自定義進度條內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ Log日志類輕量級支持格式化輸出變量實現(xiàn)代碼

    C++ Log日志類輕量級支持格式化輸出變量實現(xiàn)代碼

    這篇文章主要介紹了C++ Log日志類輕量級支持格式化輸出變量實現(xiàn)代碼,需要的朋友可以參考下
    2019-04-04
  • C語言實現(xiàn)簡單的抽獎系統(tǒng)

    C語言實現(xiàn)簡單的抽獎系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單的抽獎系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • tinyxml 常用的C++ XML解析器非常優(yōu)秀

    tinyxml 常用的C++ XML解析器非常優(yōu)秀

    讀取和設(shè)置xml配置文件是最常用的操作,試用了幾個C++的XML解析器,個人感覺TinyXML是使用起來最舒服的,因為它的API接口和Java的十分類似,面向?qū)ο笮院芎?/div> 2012-11-11
  • 使用C語言實現(xiàn)掃雷游戲

    使用C語言實現(xiàn)掃雷游戲

    這篇文章主要為大家詳細介紹了使用C語言實現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 變量定義與聲明的區(qū)別詳細解析

    變量定義與聲明的區(qū)別詳細解析

    外部變量(全局變量)的"定義"與外部變量的"聲明"是不相同的,外部變量的定義只能有一次,它的位置是在所有函數(shù)之外,而同一個文件中的外部變量聲明可以是多次的,它可以在函數(shù)之內(nèi)(哪個函數(shù)要用就在那個函數(shù)中聲明)也可以在函數(shù)之外(在外部變量的定義點之前)
    2013-09-09
  • 如何利用Matlab繪制出好看的火山圖

    如何利用Matlab繪制出好看的火山圖

    火山圖是散點圖的一種,它將統(tǒng)計測試中的統(tǒng)計顯著性量度和變化幅度相結(jié)合,從而能夠幫助快速直觀地識別那些變化幅度較大且具有統(tǒng)計學(xué)意義的數(shù)據(jù)點。本文將通過Matlab繪制好看的火山圖,需要的可以參考一下
    2022-03-03
  • 一文搞懂C++中string容器的構(gòu)造及使用

    一文搞懂C++中string容器的構(gòu)造及使用

    本文小編將帶大家學(xué)習(xí)最常見的一個引用類型——string容器,學(xué)習(xí)string容器的構(gòu)造、以及C++API中String類的常用方法,感興趣的可以了解一下
    2022-07-07
  • C語言實現(xiàn)三子棋游戲

    C語言實現(xiàn)三子棋游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)三子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C++面向?qū)ο笾袠?gòu)造函數(shù)使用詳解

    C++面向?qū)ο笾袠?gòu)造函數(shù)使用詳解

    學(xué)習(xí)過C語言的小伙伴知道:C語言是面向過程的,關(guān)注的是過程,分析出求解問題的步驟,通過函數(shù)調(diào)用逐步解決問題,這篇文章主要介紹了C++面向?qū)ο笾袠?gòu)造函數(shù)使用
    2022-10-10
  • C語言小程序 楊輝三角示例代碼

    C語言小程序 楊輝三角示例代碼

    輸入要顯示的楊輝三角的行數(shù),會打印出金字塔型的楊輝三角,不過行數(shù)太多的話,效果不太好,可以再調(diào)整一下格式控制
    2013-07-07

最新評論