diff options
Diffstat (limited to 'src/charts/doc/src/examples-modeldata.qdoc')
-rw-r--r-- | src/charts/doc/src/examples-modeldata.qdoc | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/charts/doc/src/examples-modeldata.qdoc b/src/charts/doc/src/examples-modeldata.qdoc new file mode 100644 index 00000000..507aa4cb --- /dev/null +++ b/src/charts/doc/src/examples-modeldata.qdoc @@ -0,0 +1,59 @@ +/*! + \example modeldata + \title Model Data Example + \ingroup qtcharts_examples + + \brief This example shows how to use the QAbstractItemModel derived model as the data for the + series. + + \image examples_modeldata.png + + Let's start by creating an instance of the 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 internal data store of the model with the data that is suitable for our chart example. + + \snippet modeldata/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 make the data cells fill the table view we also change headers resize mode. + + \snippet modeldata/tablewidget.cpp 2 + + Now we need the 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 modeldata/tablewidget.cpp 3 + + The code below creates new line series and gives it a name. The following line creates an instance of QVXYModelMapper class. + The next two lines specify that X-coordinates are taken from the model's column(Qt::Vertical) with index 0. The Y-coordinates are taken from the model's column with index 1. + To create a connection between the series and the model we set both of those objects to QVXYModelMapper. + + Finally, the series is added to the chart. + + \snippet modeldata/tablewidget.cpp 4 + + To show in QTableView which data corresponds with which series this example uses table coloring. + When a series is added to the chart it is assigned a color based on the currently selected theme. + The code below extracts that color from the series and uses it to create a colored QTableView. + The coloring of the view is not a part of the QChart functionality. + + \snippet modeldata/tablewidget.cpp 5 + + The same operations are done with a second series. Notice that for this series different columns of the same model are mapped. + + \snippet modeldata/tablewidget.cpp 6 + + \snippet modeldata/tablewidget.cpp 7 + + To avoid setting up the QGraphicsScene we use the QChartView class that does it for us. + QChart object pointer is used as a parameter of the QChartView constructor. + To make the chart look nicer, Antialiasing is turned on and the minimum size of the chartView widget is set. + + \snippet modeldata/tablewidget.cpp 8 + + Finally we place both widgets in a layout and use the layout as the application layout. + + \snippet modeldata/tablewidget.cpp 9 + + The application is ready. Try modifying the data in the table view and see how it affects the chart. +*/ |