从QStringListModel(从qml)获取一行

时间:2017-09-22 13:13:21

标签: qml qstringlistmodel

我从C ++中找到了关于如何做到这一点的多个答案,而不是来自QML。

如何从QStringListModel获取特定的(基于索引)行?我尝试过从其他模型开始工作的表达式,但它对QStringListModel不起作用。我也尝试过使用

var dataRow = myModel.data(rowNumber)

但它返回“未定义”。

1 个答案:

答案 0 :(得分:1)

当您拨打myModel.data时,您正在呼叫QVariant QAbstractItemModel::data(const QModelIndex &index, int role = Qt::DisplayRole)。 此方法为角色采用QModelIndex和可选的int 当您查询QStringListModel时,显示角色就是您想要的,因此您无需指定角色参数 但是,您需要使用有效的QModelIndex指定index参数。您可以使用QModelIndex QAbstractItemModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

从模型中获取一个

因此,在您的情况下,正确的方法是:
var dataRow = myModel.data(myModel.index(rowNumber, 0));

您可以从QML致电dataindex,因为两者都是Q_INVOKABLE