summaryrefslogtreecommitdiffstats
path: root/examples/charts/barmodelmapper/tablewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/charts/barmodelmapper/tablewidget.cpp')
-rw-r--r--examples/charts/barmodelmapper/tablewidget.cpp112
1 files changed, 112 insertions, 0 deletions
diff --git a/examples/charts/barmodelmapper/tablewidget.cpp b/examples/charts/barmodelmapper/tablewidget.cpp
new file mode 100644
index 00000000..81e881e9
--- /dev/null
+++ b/examples/charts/barmodelmapper/tablewidget.cpp
@@ -0,0 +1,112 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the Qt Enterprise Charts Add-on.
+**
+** $QT_BEGIN_LICENSE$
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "tablewidget.h"
+#include "customtablemodel.h"
+#include <QGridLayout>
+#include <QTableView>
+#include <QChart>
+#include <QChartView>
+#include <QLineSeries>
+#include <QVXYModelMapper>
+#include <QBarSeries>
+#include <QBarSet>
+#include <QVBarModelMapper>
+#include <QHeaderView>
+#include <QBarCategoryAxis>
+
+QT_CHARTS_USE_NAMESPACE
+
+TableWidget::TableWidget(QWidget *parent)
+ : QWidget(parent)
+{
+ // create simple model for storing data
+ // user's table data model
+ //! [1]
+ CustomTableModel *model = new CustomTableModel;
+ //! [1]
+
+ //! [2]
+ // create table view and add model to it
+ QTableView *tableView = new QTableView;
+ tableView->setModel(model);
+ tableView->setMinimumWidth(300);
+ tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+ tableView->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+ //! [2]
+
+ //! [3]
+ QChart *chart = new QChart;
+ chart->setAnimationOptions(QChart::AllAnimations);
+ //! [3]
+
+ // series 1
+ //! [4]
+ QBarSeries *series = new QBarSeries;
+
+ int first = 3;
+ int count = 5;
+ QVBarModelMapper *mapper = new QVBarModelMapper(this);
+ mapper->setFirstBarSetColumn(1);
+ mapper->setLastBarSetColumn(4);
+ mapper->setFirstRow(first);
+ mapper->setRowCount(count);
+ mapper->setSeries(series);
+ mapper->setModel(model);
+ chart->addSeries(series);
+ //! [4]
+
+ //! [5]
+ // for storing color hex from the series
+ QString seriesColorHex = "#000000";
+
+ // get the color of the series and use it for showing the mapped area
+ QList<QBarSet *> barsets = series->barSets();
+ for (int i = 0; i < barsets.count(); i++) {
+ seriesColorHex = "#" + QString::number(barsets.at(i)->brush().color().rgb(), 16).right(6).toUpper();
+ model->addMapping(seriesColorHex, QRect(1 + i, first, 1, barsets.at(i)->count()));
+ }
+ //! [5]
+
+ //! [6]
+ QStringList categories;
+ categories << "April" << "May" << "June" << "July" << "August";
+ QBarCategoryAxis *axis = new QBarCategoryAxis();
+ axis->append(categories);
+ chart->createDefaultAxes();
+ chart->setAxisX(axis, series);
+ //! [6]
+
+ //! [7]
+ QChartView *chartView = new QChartView(chart);
+ chartView->setRenderHint(QPainter::Antialiasing);
+ chartView->setMinimumSize(640, 480);
+ //! [7]
+
+ //! [8]
+ // create main layout
+ QGridLayout *mainLayout = new QGridLayout;
+ mainLayout->addWidget(tableView, 1, 0);
+ mainLayout->addWidget(chartView, 1, 1);
+ mainLayout->setColumnStretch(1, 1);
+ mainLayout->setColumnStretch(0, 0);
+ setLayout(mainLayout);
+ //! [8]
+}