最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、項目介紹

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

二、項目基本配置

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

三、UI界面設置

UI界面如下:

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

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

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

4.1 roundprogressbar.h和roundprogressbar.cpp

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

函數(shù)如下:

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

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

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

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

4.2 widget.h頭文件

頭文件中引入roundprogressbar.h頭文件,按鈕點擊槽函數(shù)和定時器對應的槽函數(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);//設置默認值為0
    bar1->setControlFlags(RoundProgressBar::all);
    ui->gridLayout->addWidget(bar1,0,0);

    //計時
    timer.setInterval(100);//設置計時間隔為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語言超全面覆蓋操作符知識點

    C語言超全面覆蓋操作符知識點

    C?語言提供了豐富的操作符,有:算術(shù)操作符,移位操作符,位操作符,賦值操作符,單目操作符,關(guān)系操作符,邏輯操作符,條件操作符等。讓我們通讀本篇來詳細了解吧
    2022-06-06
  • Qt實現(xiàn)導出QTableWidget/QTableView數(shù)據(jù)

    Qt實現(xiàn)導出QTableWidget/QTableView數(shù)據(jù)

    這篇文章主要介紹了在Qt中實現(xiàn)將QTableWidget或者QTableView中的數(shù)據(jù)直接導出的示例代碼,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-01-01
  • C++運行時獲取類型信息的type_info類與bad_typeid異常

    C++運行時獲取類型信息的type_info類與bad_typeid異常

    這篇文章主要介紹了C++運行時獲取類型信息的type_info類與bad_typeid異常,是C++入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-01-01
  • C++實現(xiàn)二叉樹及堆的示例代碼

    C++實現(xiàn)二叉樹及堆的示例代碼

    這篇文章主要介紹了C++實現(xiàn)二叉樹及堆的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • 使用Qt/C++實現(xiàn)WGS84,高德GCJ-02與百度BD-09坐標系間相互轉(zhuǎn)化

    使用Qt/C++實現(xiàn)WGS84,高德GCJ-02與百度BD-09坐標系間相互轉(zhuǎn)化

    這篇文章主要為大家詳細介紹了如何使用Qt實現(xiàn)WGS84、高德GCJ-02與百度BD-09坐標系間相互轉(zhuǎn)化,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-07-07
  • C++中SetConsoleCursorPosition()移動光標函數(shù)的用法大全

    C++中SetConsoleCursorPosition()移動光標函數(shù)的用法大全

    這篇文章主要介紹了C++中SetConsoleCursorPosition()移動光標函數(shù)的用法大全,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • C語言指針如何實現(xiàn)字符串逆序反轉(zhuǎn)

    C語言指針如何實現(xiàn)字符串逆序反轉(zhuǎn)

    這篇文章主要介紹了C語言指針如何實現(xiàn)字符串逆序反轉(zhuǎn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • C++使用OpenCV進行物體識別與檢測的三種方法

    C++使用OpenCV進行物體識別與檢測的三種方法

    物體識別與檢測是計算機視覺中的核心任務之一,它被廣泛應用于自動駕駛、安防監(jiān)控、圖像分析等領(lǐng)域,通過物體檢測技術(shù),計算機能夠從圖像中識別出特定的物體或目標,本文將介紹如何使用 C++ 和 OpenCV 庫進行物體識別與檢測,需要的朋友可以參考下
    2025-04-04
  • c++顯式棧實現(xiàn)遞歸介紹

    c++顯式棧實現(xiàn)遞歸介紹

    大家好,本篇文章主要講的是c++顯式棧實現(xiàn)遞歸介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • VC基于ADO技術(shù)訪問數(shù)據(jù)庫的方法

    VC基于ADO技術(shù)訪問數(shù)據(jù)庫的方法

    這篇文章主要介紹了VC基于ADO技術(shù)訪問數(shù)據(jù)庫的方法,較為詳細的分析了VC使用ADO操作數(shù)據(jù)庫的相關(guān)實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10

最新評論

遂平县| 黄大仙区| 灵武市| 三台县| 洛南县| 东莞市| 五原县| 郑州市| 邹城市| 徐闻县| 东乌| 白城市| 长寿区| 岢岚县| 余干县| 遂平县| 汉川市| 临夏市| 同仁县| 新闻| 凤台县| 桦甸市| 尖扎县| 尼木县| 读书| 深水埗区| 稻城县| 婺源县| 峨眉山市| 青冈县| 屯昌县| 会昌县| 东乡县| 宁海县| 乐陵市| 孟村| 乌兰浩特市| 云浮市| 刚察县| 新宾| 临沭县|