Qt之QRoundProgressBar(圓形進度條)


簡述

QRoundProgressBar類能夠實現一個圓形進度條,繼承自QWidget,並且有和QProgressBar類似的API接口。

詳細說明

主要有以下特性:

  • 圓形進度條控件
  • 高度可定制的

源碼下載:

下載完后,進行解壓縮,src目錄里包含了兩個主要的文件QRoundProgressBar.h和QRoundProgressBar.cpp,可以直接使用,也可以預編譯為庫。

test目錄中則包含了一個使用的示例,可以直接運行。

效果如下:

這里寫圖片描述

風格

QRoundProgressBar包含三種風格。

枚舉QRoundProgressBarBar::Style:

常量 描述
QRoundProgressBar::StyleDonut 圓環風格(環繞文本)
QRoundProgressBar::StylePie 餅狀風格(文本位於扇形中央)
QRoundProgressBar::StyleLine 線狀風格(細線環繞文本)

顏色

通常情況下,QRoundProgressBar使用調色板(palette)和字體(font)屬性來定義外觀。

可以考慮使用QPalette中QPalette::ColorRole的以下成員:

常量 描述
QPalette::Window 設置整個部件的背景(正常情況下,應該設置為:Qt::NoBrush)
QPalette::Base 未填充進度區域的背景(如果需要透明,應該設置為:Qt::NoBrush)
QPalette::AlternateBase 文本顯示所在的中間圓環的背景(為圓環風格)
QPalette::Shadow 未填充區域的前景色(即:邊框色)
QPalette::Highlight 填充進度條區域的背景色
QPalette::Text 在中心顯示的文本色

字體

通過setFont()為文本設置字體。

默認情況下,將自動調整字體大小,以適應部件的內部圓環。

共有函數

  • double nullPosition()
    返回最小值的位置(用角度表示)。

  • void setNullPosition(double position);
    設置最小值的位置,position為圓上最小值的位置(用角度表示)。

  • void setBarStyle(BarStyle style);
    設置顯示風格。

  • BarStyle barStyle() const;
    返回顯示風格。

  • void setOutlinePenWidth(double penWidth);
    設置圓環輪廓線的畫筆寬度(像素)。

  • double outlinePenWidth() const;
    返回圓環輪廓線的畫筆寬度。

  • void setDataPenWidth(double penWidth);
    設置圓環數據圓筆的寬度。

  • double dataPenWidth() const;
    返回圓環數據圓筆的寬度。

  • void setDataColors(const QGradientStops& stopPoints);
    設置可見數據的漸變色。

    注意:此函數會覆蓋palette(),來動態創建漸變。

  • void setFormat(const QString& format);
    定義用於生成當前的文本字符串。

    注意:如果沒有設置格式,將不會顯示文本。

  • void resetFormat();
    重置格式字符串為空字符串,將不會顯示文本。

  • QString format() const;
    返回用於生成當前文本的格式。

  • void setDecimals(int count);
    設置顯示小數點后的位數(默認為1)。

  • int decimals() const;
    返回顯示小數點后的位數。

  • double value() const;
    返回當前顯示在控件上的值。

  • double minimum() const;
    返回允許值范圍的最小值。

  • double maximum() const;
    返回允許值范圍的最大值。

共有槽函數

  • void setRange(double min, double max);
    設置允許值范圍。

  • void setMinimum(double min);
    設置允許值范圍的最小值。

  • void setMaximum(double max);
    設置允許值范圍的最大值。

  • void setValue(double val);
    設置當前顯示在控件上的值(浮點數),必須在最小值和最大值之間。

  • void setValue(int val);
    設置當前顯示在控件上的值(整數),必須在最小值和最大值之間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM