Есть ли элемент управления в виде сетки QML, который я могу прикрепить к QAbstractTableModel, я стремлюсь использовать столбцы в модели, а не роли - PullRequest
0 голосов
/ 21 января 2020

Я хочу написать некоторый QML для редактирования CSV-файла, представив сетчатый массив текстовых полей, чтобы разрешить пользовательский ввод / вывод. Я планирую написать подкласс C ++ класса QAbstractTableModel для представления файла, я не могу предвидеть никаких проблем с этим. Мой подкласс будет индексировать поля, используя строки и столбцы. Я не буду использовать «роли в качестве столбцов», поскольку количество столбцов будет изменяться во время выполнения в зависимости от файла, который пользователь выбирает для загрузки.

Существует ли элемент управления QML, который будет отображать мой QAbstractTableModel? В ответах на аналогичные проблемы в Интернете предлагается использовать роли для столбцов, но я бы предпочел использовать нумерацию столбцов, предлагаемую QModelIndex.

Вот безумно простая QAbstractTableModel для начинающих - сетка «Blob» два на два. Я хотел бы сделать это в QML

class CsvGridModel: public QAbstractTableModel
{
public:
    CsvGridModel();

    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override {return 2;}
    virtual int columnCount(const QModelIndex &parent = QModelIndex()) const override {return 2;}
    virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override {return "Blob";}
};

Я использую Qt 5.11.3

1 Ответ

1 голос
/ 21 января 2020

TableView представляет собой, ну, в общем, настольные модели.

...