summaryrefslogtreecommitdiffstats
path: root/src/charts/doc/src/examples-barmodelmapper.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts/doc/src/examples-barmodelmapper.qdoc')
-rw-r--r--src/charts/doc/src/examples-barmodelmapper.qdoc58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/charts/doc/src/examples-barmodelmapper.qdoc b/src/charts/doc/src/examples-barmodelmapper.qdoc
new file mode 100644
index 00000000..00d23326
--- /dev/null
+++ b/src/charts/doc/src/examples-barmodelmapper.qdoc
@@ -0,0 +1,58 @@
+/*!
+ \example barmodelmapper
+ \title BarModelMapper example
+ \ingroup qtcharts_examples
+
+ \brief This example shows how to use QAbstractItemModel derived model as the data for the bar
+ series.
+
+ \image examples_barmodelmapper.png
+
+ Let's start by creating an instance of CustomTableModel class.
+ The CustomTableModel class is derived from QAbstractTableModel, and it was created for the purpose of this example.
+ The constructor of this class populates the model's internal data store with the data required for our chart example.
+
+ \snippet barmodelmapper/tablewidget.cpp 1
+
+ We now have a model with data that we would like to display both on the chart and in a QTableView.
+ First, we create QTableView and tell it to use the model as a data source. To have the data presented nicely, the minimum width of the table view is set and its headers resize mode changed to stretch.
+
+ \snippet barmodelmapper/tablewidget.cpp 2
+
+ Now we need a QChart instance to display the same data on the chart.
+ We also enable animations. It makes it easier to see how a modification to the model's data affects the chart.
+
+ \snippet barmodelmapper/tablewidget.cpp 3
+
+ The first line of the code below creates new bar series. Variables firstRow and rowCount are used to define a custom model mapping.
+ Custom mapping allows to take only part of the data from the model. In this case data from 5 rows starting with the row with the index 3.
+ The following three lines create an instance of the QVBarModelMapper class and specify that the data for the bar sets should be taken from the model's columns with indexes from 1 to 4 (inclusive).
+ To create a connection between the series and the model we set both of those objects to QVBarModelMapper.
+
+ Finally the series is added to the chart.
+
+ \snippet barmodelmapper/tablewidget.cpp 4
+
+ To show in QTableView which data corresponds with which bar set, this example uses table coloring.
+ When series is added to the chart, it is assigned a color based on the currently selected theme.
+ Code below extracts that color from the series and uses it to create colored QTableView.
+ Coloring of the view is not a part of the QChart functionality.
+
+ \snippet barmodelmapper/tablewidget.cpp 5
+
+ We would like to have categories placed on the chart's axis that describe what the data means.
+ Next snippet shows how to do that.
+
+ \snippet barmodelmapper/tablewidget.cpp 6
+
+ To avoid setting up the QGraphicsScene we use the QChartView class that does it for us. The QChart object pointer is used as a parameter of the QChartView constructor.
+ To make the render look nicer Antialiasing is turned on and the minimum size of the chartView widget is set.
+
+ \snippet barmodelmapper/tablewidget.cpp 7
+
+ Finally, we place both widgets in a layout and use the layout as the application layout.
+
+ \snippet barmodelmapper/tablewidget.cpp 8
+
+ The application is ready. Try modifying the data in the table view and see how it affects the chart.
+*/