Revision control
++ // Copyright (C) 2020 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ #ifndef CPPTABLEMODEL_H
++ #define CPPTABLEMODEL_H
++
++ //![0]
++ #include <qqml.h>
++ #include <QAbstractTableModel>
++
++ class TableModel : public QAbstractTableModel
++ {
++ Q_OBJECT
++ QML_ELEMENT
++
++ public:
++ int rowCount(const QModelIndex & = QModelIndex()) const override
++ {
++ return 200;
++ }
++
++ int columnCount(const QModelIndex & = QModelIndex()) const override
++ {
++ return 200;
++ }
++
++ QVariant data(const QModelIndex &index, int role) const override
++ {
++ switch (role) {
++ case Qt::DisplayRole:
++ return QString("%1, %2").arg(index.column()).arg(index.row());
++ default:
++ break;
++ }
++
++ return QVariant();
++ }
++
++ QHash<int, QByteArray> roleNames() const override
++ {
++ return { {Qt::DisplayRole, "display"} };
++ }
++ };
++ //![0]
++
++ #endif // CPPTABLEMODEL_H