Pie Chart
Pie Chart
Pie charts show part-to-whole relationships. The public class is UIGQOpenGLPieChart.
Base and Class Diagram
QOpenGLWidget
└─ UIGQChartBase
└─ UIGQOpenGLPieChart + IUIGQWidgetBase
Data Structure
struct UIGQOpenGLPieChartSlice
{
QString name;
double value = 0.0;
QColor fillColor;
bool visible = true;
};
Methods
| Method | Description | Parameters | Return |
|---|---|---|---|
setTitle(const QString& title) |
Sets the title. | title: title text. |
void |
getTitle() |
Reads the title. | None. | QString |
setSlices(const QVector<UIGQOpenGLPieChartSlice>& slices) |
Sets pie slices. | slices: pie slice array. |
void |
getSlices() |
Reads pie slices. | None. | QVector<UIGQOpenGLPieChartSlice> |
clearSlices() |
Removes all slices. | None. | void |
setInnerRadiusRatio(qreal ratio) |
Sets inner radius; 0 is a pie chart, larger values create a donut chart. |
ratio: inner radius ratio. |
void |
getInnerRadiusRatio() |
Reads inner radius ratio. | None. | qreal |
setAngleRange(qreal startAngleDegrees, qreal spanAngleDegrees) |
Sets start angle and span angle. | startAngleDegrees: start angle; spanAngleDegrees: angle span. |
void |
getStartAngle() |
Reads start angle. | None. | qreal |
getSpanAngle() |
Reads angle span. | None. | qreal |
setLeaderLineVisible(bool visible) |
Shows or hides leader lines. | visible: whether leader lines are visible. |
void |
getLeaderLineVisible() |
Reads leader line visibility. | None. | bool |
setTooltipMode(UIGQChartTooltipMode mode) |
Sets tooltip mode. | mode: tooltip mode enum. |
void |
getTooltipMode() |
Reads tooltip mode. | None. | UIGQChartTooltipMode |
setTooltipVisible(bool visible) |
Shows or hides tooltip. | visible: whether tooltip is visible. |
void |
getTooltipVisible() |
Reads tooltip visibility. | None. | bool |
setHoverEnabled(bool enabled) |
Enables or disables hover interaction. | enabled: whether hover is enabled. |
void |
getHoverEnabled() |
Reads hover interaction state. | None. | bool |
initDemoData() |
Loads demo data. | None. | void |
Example
using namespace UIGQtLib;
auto* chart = new UIGQOpenGLPieChart(parent);
chart->setTitle("Traffic Sources");
QVector<UIGQOpenGLPieChartSlice> slices;
UIGQOpenGLPieChartSlice search;
search.name = "Search";
search.value = 1048;
search.fillColor = QColor(35, 128, 224);
slices.append(search);
UIGQOpenGLPieChartSlice direct;
direct.name = "Direct";
direct.value = 735;
direct.fillColor = QColor(62, 180, 98);
slices.append(direct);
chart->setSlices(slices);
chart->setInnerRadiusRatio(0.55);
chart->setTooltipMode(kChartTooltipItem);
chart->setTooltipVisible(true);
setSlices(...) is the data entry point. value is used to calculate proportions, so application code does not need to pre-compute percentages.