从 QStringListModel 获取一行(来自 qml)

Get a row from QStringListModel (from qml)

我找到了多个关于如何从 C++ 中执行此操作的答案,但没有从 QML 中找到。

如何从 QStringListModel 中获取特定的(基于索引的)行?我尝试了适用于其他模型的表达式,但它不适用于 QStringListModel。我也尝试使用

var dataRow = myModel.data(rowNumber)

但它返回 "undefined"。

当您调用 myModel.data 时,您正在调用 QVariant QAbstractItemModel::data(const QModelIndex &index, int role = Qt::DisplayRole)。 此方法采用 QModelIndex 和一个可选的 int 作为角色。
显示角色就是你在查询一个QStringListModel时想要的,所以你不需要指定角色参数。
但是,您确实需要使用有效的 QModelIndex 指定索引参数。您可以从 QModelIndex QAbstractItemModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

的模型中获得一个

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

您可以从 QML 调用 dataindex,因为它们都是 Q_INVOKABLE.