我找到了多个关于如何从 C++ 中做到这一点的答案,但不是从 QML 中找到的。
如何从 QStringListModel 获取特定(基于索引)行?我尝试了适用于其他模型的表达式,但它不适用于 QStringListModel。我也尝试使用
var dataRow = myModel.data(rowNumber)
但它返回“未定义”。
我找到了多个关于如何从 C++ 中做到这一点的答案,但不是从 QML 中找到的。
如何从 QStringListModel 获取特定(基于索引)行?我尝试了适用于其他模型的表达式,但它不适用于 QStringListModel。我也尝试使用
var dataRow = myModel.data(rowNumber)
但它返回“未定义”。
当你打电话时,myModel.data
你在打电话QVariant QAbstractItemModel::data(const QModelIndex &index, int role = Qt::DisplayRole)
。此方法QModelIndex
为角色接受一个和一个可选的 int。
显示角色是您查询 a 时想要的,QStringListModel
因此您无需指定角色参数。
但是,您确实需要使用有效的QModelIndex
. 你可以从模型中得到一个QModelIndex QAbstractItemModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const
因此,在您的情况下,正确的方法是:
var dataRow = myModel.data(myModel.index(rowNumber, 0));
您可以从 QML 调用data
和调用,index
因为两者都是Q_INVOKABLE
.