Этот вопрос в основном задает одно и то же - Можно ли использовать QAbstractTableModel с TableView из QtQuick.Controls?
У меня есть QAbstractTableModel с данными в строках и столбцах. Я хочу иметь возможность указать, какой столбец в моей модели должен отображаться в представлении. Это совсем не очевидно, любая помощь приветствуется.
Базовые примеры полагаются на уникальные имена ролей, чтобы гарантировать поступление правильных данных в заданный столбец, например:
TableView {
TableViewColumn { role: "title"; title: "Title"; width: 100 }
TableViewColumn { role: "author"; title: "Author"; width: 200 }
model: libraryModel
}
Единственный прием, который я могу придумать, - это присвоить каждому столбцу в моей модели уникальное имя роли, но это похоже на запах кода, есть ли другой простой способ указать индекс столбца моего TableViewColumn
?
«Единственный прием, который я могу придумать, - это присвоить каждому столбцу в моей модели уникальное имя роли», я думаю, это правильно и рекомендуется Qt.
Я также был удивлен в то время, когда вы не можете напрямую использовать модель C++ в QML. По какой-то причине концепция ролей в Qt / C++ немного отличается. Для себя я понял, что концепция «столбцов» в Qt такая же, как «роли» в QML.
Спасибо за помощь в этом вопросе, я удивлен этим, но потратив некоторое время, пытаясь выяснить, что мне не хватает, я с облегчением узнал, что я не схожу с ума!
AFAIK, QML отказался от концепции столбцов. Вы можете подделать это с помощью ProxyModel, который отображает столбцы на роли?