diff options
Diffstat (limited to 'src/charts/doc/src/examples-barmodelmapper.qdoc')
-rw-r--r-- | src/charts/doc/src/examples-barmodelmapper.qdoc | 58 |
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. +*/ |