如何使用 C++/Qt 的特定语法?

How to use specific syntax with C++/Qt?

在 Qt/QML 中,我们在模型中使用了以下语法:

ListModel {
    ListElement {name: 'Willian'; age: 21;}
}

// And we can access the values with this syntax
model.get(x).name // With each key in list

但我的模型是使用 QStandartItemModel 在 Qt 中创建的,我想像访问 QML 模型一样访问它,但我不知道如何去做。我曾想过运算符重载,但 operator .(点)中不存在开销。

我知道我们可以通过 data(const QModelIndex & index, int role = Qt::DisplayRole) 访问 QStandartItemModel,但是 QML 版本更加明确。

有人知道怎么做吗?

您应该使用 roleNames 方法使某些属性在 QML 中可见。它允许您将自定义显示角色 (int) 绑定到人类可读的名称(从 QML 可见)。

可以找到整篇文章 here