##// END OF EJS Templates
Fix attempt to wrong graphics items hadnling
Fix attempt to wrong graphics items hadnling

File last commit:

r757:7dda437b6dfe
r790:68c6a254cbfa
Show More
main.cpp
149 lines | 4.4 KiB | text/x-c | CppLexer
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 #include <QtGui/QApplication>
sauimone
Better way to enable features to user. Do less, but expose signals to user and allow user to descide what to do.
r425 #include <QMainWindow>
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 #include <qchartglobal.h>
sauimone
Better way to enable features to user. Do less, but expose signals to user and allow user to descide what to do.
r425 #include <qchartview.h>
#include <qstackedbarseries.h>
#include <qbarset.h>
#include <qchartaxis.h>
#include <QStringList>
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 #include <QDebug>
sauimone
Better way to enable features to user. Do less, but expose signals to user and allow user to descide what to do.
r425
QTCOMMERCIALCHART_USE_NAMESPACE
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 //! [1]
class DrilldownBarSeries : public QStackedBarSeries
{
Q_OBJECT
public:
sauimone
Drilldown example using stacked barchart.
r449 DrilldownBarSeries(QStringList categories, QObject *parent = 0) : QStackedBarSeries(categories,parent) {}
sauimone
updating drilldown example. Needs some more thinking
r438
sauimone
Documentation for stacked barchart drilldown example
r462 void mapDrilldownSeries(QString category, DrilldownBarSeries* drilldownSeries)
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 {
sauimone
Drilldown example using stacked barchart.
r449 mDrilldownSeries[category] = drilldownSeries;
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 }
sauimone
updating drilldown example. Needs some more thinking
r438
DrilldownBarSeries* drilldownSeries(QString category)
sauimone
Drilldown example using stacked barchart.
r449 {
return mDrilldownSeries[category];
}
public Q_SLOTS:
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430
private:
sauimone
Drilldown example using stacked barchart.
r449
QMap<QString, DrilldownBarSeries*> mDrilldownSeries;
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 };
sauimone
Drilldown example using stacked barchart.
r449 //! [1]
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430
sauimone
Drilldown example using stacked barchart.
r449 //! [2]
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 class DrilldownChart : public QChartView
{
Q_OBJECT
public:
explicit DrilldownChart(QWidget *parent = 0) : QChartView(parent), m_currentSeries(0) {}
void changeSeries(QSeries* series)
{
if (m_currentSeries)
removeSeries(m_currentSeries);
m_currentSeries = series;
addSeries(series);
Tero Ahola
Fixed build error caused by QSeries name change
r733 setChartTitle(series->name());
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 }
public Q_SLOTS:
sauimone
Documentation for stacked barchart drilldown example
r462 void handleRightClick(QBarSet *barset, QString category)
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 {
Tero Ahola
A few more warnings removed from examples
r613 Q_UNUSED(barset)
sauimone
Drilldown example using stacked barchart.
r449 DrilldownBarSeries* series = static_cast<DrilldownBarSeries*> (sender());
changeSeries(series->drilldownSeries(category));
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 }
private:
QSeries* m_currentSeries;
};
sauimone
Drilldown example using stacked barchart.
r449 //! [2]
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430
sauimone
Better way to enable features to user. Do less, but expose signals to user and allow user to descide what to do.
r425 int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow window;
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 DrilldownChart* drilldownChart = new DrilldownChart(&window);
Tero Ahola
Added Icy Blue and High Contrast theme
r757 drilldownChart->setChartTheme(QChart::ChartThemeBlueIcy);
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430
sauimone
Drilldown example using stacked barchart.
r449 //! [3]
sauimone
Better way to enable features to user. Do less, but expose signals to user and allow user to descide what to do.
r425 // Define categories
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 QStringList months;
sauimone
Documentation for stacked barchart drilldown example
r462 months << "May" << "Jun" << "Jul" << "Aug" << "Sep";
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 QStringList weeks;
weeks << "week 1" << "week 2" << "week 3" << "week 4";
QStringList plants;
plants << "Habanero" << "Lemon Drop" << "Starfish" << "Aji Amarillo";
sauimone
Drilldown example using stacked barchart.
r449 //! [3]
sauimone
updating drilldown example. Needs some more thinking
r438 //! [4]
sauimone
Drilldown example using stacked barchart.
r449 // Create drilldown structure
DrilldownBarSeries* seasonSeries = new DrilldownBarSeries(months, drilldownChart);
Tero Ahola
Fixed build error caused by QSeries name change
r733 seasonSeries->setName("Crop by month - Season");
sauimone
Better way to enable features to user. Do less, but expose signals to user and allow user to descide what to do.
r425
sauimone
Drilldown example using stacked barchart.
r449 // Each month in season series has drilldown series for weekly data
foreach (QString month, months) {
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430
sauimone
Drilldown example using stacked barchart.
r449 // Create drilldown series for every week
sauimone
updating drilldown example. Needs some more thinking
r438 DrilldownBarSeries* weeklySeries = new DrilldownBarSeries(weeks, drilldownChart);
sauimone
Documentation for stacked barchart drilldown example
r462 seasonSeries->mapDrilldownSeries(month, weeklySeries);
sauimone
updating drilldown example. Needs some more thinking
r438
sauimone
Drilldown example using stacked barchart.
r449 // Drilling down from weekly data brings us back to season data.
foreach (QString week, weeks) {
sauimone
Documentation for stacked barchart drilldown example
r462 weeklySeries->mapDrilldownSeries(week, seasonSeries);
Tero Ahola
Fixed build error caused by QSeries name change
r733 weeklySeries->setName(QString("Crop by week - " + month));
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 }
sauimone
Drilldown example using stacked barchart.
r449 // Use right click signal to implement drilldown
QObject::connect(weeklySeries,SIGNAL(rightClicked(QBarSet*,QString)),drilldownChart,SLOT(handleRightClick(QBarSet*,QString)));
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 }
sauimone
Documentation for stacked barchart drilldown example
r462
// Enable drilldown from season series using right click.
QObject::connect(seasonSeries,SIGNAL(rightClicked(QBarSet*,QString)),drilldownChart,SLOT(handleRightClick(QBarSet*,QString)));
sauimone
Drilldown example using stacked barchart.
r449 //! [4]
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430
sauimone
Drilldown example using stacked barchart.
r449 //! [5]
// Fill monthly and weekly series with data
sauimone
updating drilldown example. Needs some more thinking
r438 foreach (QString plant, plants) {
sauimone
Drilldown example using stacked barchart.
r449 QBarSet* monthlyCrop = new QBarSet(plant);
foreach (QString month, months) {
QBarSet* weeklyCrop = new QBarSet(plant);
sauimone
updating drilldown example. Needs some more thinking
r438 foreach (QString week, weeks ) {
*weeklyCrop << (qrand() % 20);
}
sauimone
Documentation for stacked barchart drilldown example
r462 // Get the drilldown series from season series and add crop to it.
sauimone
Drilldown example using stacked barchart.
r449 seasonSeries->drilldownSeries(month)->addBarSet(weeklyCrop);
seasonSeries->drilldownSeries(month)->setToolTipEnabled(true);
sauimone
updating drilldown example. Needs some more thinking
r438 *monthlyCrop << weeklyCrop->total();
sauimone
Drilldown example using stacked barchart.
r449
sauimone
updating drilldown example. Needs some more thinking
r438 QObject::connect(weeklyCrop,SIGNAL(clicked(QString)),weeklyCrop,SIGNAL(toggleFloatingValues()));
}
sauimone
Drilldown example using stacked barchart.
r449 seasonSeries->addBarSet(monthlyCrop);
sauimone
updating drilldown example. Needs some more thinking
r438 QObject::connect(monthlyCrop,SIGNAL(clicked(QString)),monthlyCrop,SIGNAL(toggleFloatingValues()));
}
sauimone
Drilldown example using stacked barchart.
r449 //! [5]
seasonSeries->setToolTipEnabled(true);
sauimone
Documentation for stacked barchart drilldown example
r462 //! [6]
sauimone
Drilldown example using stacked barchart.
r449 // Show season series in initial view
drilldownChart->changeSeries(seasonSeries);
Tero Ahola
Fixed build error caused by QSeries name change
r733 drilldownChart->setChartTitle(seasonSeries->name());
sauimone
Documentation for stacked barchart drilldown example
r462 //! [6]
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430
Michal Klocek
Renames Grid to GridLine
r535 drilldownChart->axisX()->setGridLineVisible(false);
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430
window.setCentralWidget(drilldownChart);
sauimone
Better way to enable features to user. Do less, but expose signals to user and allow user to descide what to do.
r425 window.resize(400, 300);
window.show();
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430
sauimone
Better way to enable features to user. Do less, but expose signals to user and allow user to descide what to do.
r425 return a.exec();
}
sauimone
Drilldown example for barcharts continuing. Still some bugs
r430 #include "main.moc"