diff --git a/doc/images/stackedbarchart_drilldown_august.png b/doc/images/stackedbarchart_drilldown_august.png new file mode 100644 index 0000000000000000000000000000000000000000..a0c3231ed5a5ffa2395222e45fead6a25450dc1a GIT binary patch literal 15271 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 literal 0 Hc$@Xn8ab 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 H`PTmfWvGo# literal 0 Hc$@Bar Chart example

  • Stacked Bar Chart example
  • Percent Bar Chart example
  • +
  • Stacked Bar Chart Drilldown example
  • Line Chart example
  • Pie Chart example
  • GDP Chart example
  • diff --git a/example/stackedbarchartdrilldown/main.cpp b/example/stackedbarchartdrilldown/main.cpp index 3735a4c..b40eea7 100644 --- a/example/stackedbarchartdrilldown/main.cpp +++ b/example/stackedbarchartdrilldown/main.cpp @@ -17,14 +17,13 @@ class DrilldownBarSeries : public QStackedBarSeries public: DrilldownBarSeries(QStringList categories, QObject *parent = 0) : QStackedBarSeries(categories,parent) {} - void addDrilldownSeries(QString category, DrilldownBarSeries* drilldownSeries) + void mapDrilldownSeries(QString category, DrilldownBarSeries* drilldownSeries) { mDrilldownSeries[category] = drilldownSeries; } DrilldownBarSeries* drilldownSeries(QString category) { -// qDebug() << "DrilldownBarSeries::drilldownSeries" << category << mDrilldownSeries[category]; return mDrilldownSeries[category]; } @@ -53,10 +52,9 @@ public: } public Q_SLOTS: - void handleRightClick(QBarSet *barset, QString category) + void handleRightClick(QBarSet *barset, QString category) { - qDebug() << "DrilldownChart::handleRightClick" << barset->name() << category; - // TODO: continue from here +// qDebug() << "DrilldownChart::handleRightClick" << barset->name() << category; DrilldownBarSeries* series = static_cast (sender()); changeSeries(series->drilldownSeries(category)); } @@ -77,7 +75,7 @@ int main(int argc, char *argv[]) //! [3] // Define categories QStringList months; - months << "Jun" << "Jul" << "Aug" << "Sep"; + months << "May" << "Jun" << "Jul" << "Aug" << "Sep"; QStringList weeks; weeks << "week 1" << "week 2" << "week 3" << "week 4"; QStringList plants; @@ -94,17 +92,20 @@ int main(int argc, char *argv[]) // Create drilldown series for every week DrilldownBarSeries* weeklySeries = new DrilldownBarSeries(weeks, drilldownChart); - seasonSeries->addDrilldownSeries(month, weeklySeries); + seasonSeries->mapDrilldownSeries(month, weeklySeries); // Drilling down from weekly data brings us back to season data. foreach (QString week, weeks) { - weeklySeries->addDrilldownSeries(week, seasonSeries); + weeklySeries->mapDrilldownSeries(week, seasonSeries); weeklySeries->setTitle(QString("Crop by week - " + month)); } // Use right click signal to implement drilldown QObject::connect(weeklySeries,SIGNAL(rightClicked(QBarSet*,QString)),drilldownChart,SLOT(handleRightClick(QBarSet*,QString))); } + + // Enable drilldown from season series using right click. + QObject::connect(seasonSeries,SIGNAL(rightClicked(QBarSet*,QString)),drilldownChart,SLOT(handleRightClick(QBarSet*,QString))); //! [4] //! [5] @@ -116,7 +117,7 @@ int main(int argc, char *argv[]) foreach (QString week, weeks ) { *weeklyCrop << (qrand() % 20); } - // Get the drilldown series from upper level series and add crop to it. + // Get the drilldown series from season series and add crop to it. seasonSeries->drilldownSeries(month)->addBarSet(weeklyCrop); seasonSeries->drilldownSeries(month)->setToolTipEnabled(true); *monthlyCrop << weeklyCrop->total(); @@ -130,12 +131,11 @@ int main(int argc, char *argv[]) seasonSeries->setToolTipEnabled(true); - // Enable drilldown from season series using right click. - QObject::connect(seasonSeries,SIGNAL(rightClicked(QBarSet*,QString)),drilldownChart,SLOT(handleRightClick(QBarSet*,QString))); - + //! [6] // Show season series in initial view drilldownChart->changeSeries(seasonSeries); drilldownChart->setChartTitle(seasonSeries->title()); + //! [6] // Disable axis, since they don't really apply to bar chart drilldownChart->axisX()->setAxisVisible(false);