|
|
/*!
|
|
|
\example examples/donutbreakdown
|
|
|
\title Donut chart breakdown example
|
|
|
\subtitle
|
|
|
|
|
|
This example shows how to use create a donut breakdown chart using QPieSeries API.
|
|
|
\image examples_donutbreakdown.png
|
|
|
|
|
|
Let's start by defining some data for the chart.
|
|
|
|
|
|
\snippet ../examples/donutbreakdown/main.cpp 1
|
|
|
|
|
|
Then we create a chart where we add the data. Note that this is our own chart derived from QChart.
|
|
|
|
|
|
\snippet ../examples/donutbreakdown/main.cpp 2
|
|
|
|
|
|
Our own chart works so that in the constructor we create a main series
|
|
|
which aggregates the data provided by the breakdown series. This is the piechart in the center.
|
|
|
|
|
|
\snippet ../examples/donutbreakdown/donutbreakdownchart.cpp 1
|
|
|
|
|
|
When a breakdown series is added the data is used to create a slice in the main series and the
|
|
|
breakdown series itself is used to create a segment of a donut positioned so that it is aligned
|
|
|
with the corresponding slice in the main series.
|
|
|
|
|
|
\snippet ../examples/donutbreakdown/donutbreakdownchart.cpp 2
|
|
|
|
|
|
Here's how the start and end angles for the donut segments are calculated.
|
|
|
|
|
|
\snippet ../examples/donutbreakdown/donutbreakdownchart.cpp 3
|
|
|
|
|
|
Legend markers are customized to show the breakdown percentage and markers for the main level slices are hidden.
|
|
|
|
|
|
\snippet ../examples/donutbreakdown/donutbreakdownchart.cpp 4
|
|
|
|
|
|
Instead the main level slices show the percentage on the label.
|
|
|
|
|
|
\snippet ../examples/donutbreakdown/mainslice.cpp 1
|
|
|
\snippet ../examples/donutbreakdown/mainslice.cpp 2
|
|
|
|
|
|
And now that we have our chart defined we can finally create a QChartView and show the chart.
|
|
|
|
|
|
\snippet ../examples/donutbreakdown/main.cpp 3
|
|
|
|
|
|
*/
|
|
|
|