簡述
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);
設置當前顯示在控件上的值(整數),必須在最小值和最大值之間。