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.