diff --git a/doc/src/examples-barmodelmapper.qdoc b/doc/src/examples-barmodelmapper.qdoc new file mode 100644 index 0000000..6f7c048 --- /dev/null +++ b/doc/src/examples-barmodelmapper.qdoc @@ -0,0 +1,55 @@ +/*! + \example examples/barmodelmapper + \title BarModelMapper example + \subtitle + + This example shows how to use QAbstractItemModel derived model as the data for the bar series. + + Let's start by creating an instance of CustomTableModel class. + CustomTableModel class is derived from QAbstractTableModel and it was created for the purpose of this example. + The constructor of this class populates the internal data store of the model with the data that is good for our chart example. + + \snippet ../examples/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 use the model as a data source. To make the data cells fill the table view we also change headers resize mode. + + \snippet ../examples/barmodelmapper/tablewidget.cpp 2 + + Now we need QChart instance to display the same data on the chart. + We also enable animations. It makes it easier to see how modifying the model's data affect the chart. + + \snippet ../examples/barmodelmapper/tablewidget.cpp 3 + + First line of the code below creates new grouped 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. + Following three lines create an instance of QVBarModelMapper class and specifie that data for the bar sets should be taken from the model's columns(Qt::Vertical) 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 ../examples/barmodelmapper/tablewidget.cpp 4 + + To show in QTableView which data coresponds with which series this example uses table coloring. + When series is added to the chart it is assigned a color beased 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 ../examples/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 ../examples/barmodelmapper/tablewidget.cpp 6 + + To avoid setting up the QGraphicsScene we use QChartView class that does it for us. 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 ../examples/barmodelmapper/tablewidget.cpp 7 + + Finally we place both widgets in a layout and use the layout as the application layout. + + \snippet ../examples/barmodelmapper/tablewidget.cpp 8 + + Application is ready. Try modifying the data in the table view and see how it affects the chart. +*/ diff --git a/doc/src/examples.qdoc b/doc/src/examples.qdoc index 8e99ca7..c66bd46 100644 --- a/doc/src/examples.qdoc +++ b/doc/src/examples.qdoc @@ -20,6 +20,7 @@