如何从qml中的AbstractListModel访问数据元素

how to access data elements from AbstractListModel in qml

https://gist.github.com/eyllanesc/4f47e4f59100340b8328438a39011b31

我用这个 link 在它上面生成了一个 QAbstractList 和一个 SortProxyModel。我使用 sortproxymodel class 中的 sortdata 方法使用任何一个属性对列表进行了排序。我还需要访问该列表中的一些数据以进行一些计算 main.qml. console.log(PersonModel.data(1,'value1')) 是我使用的行。有错吗?

如果您想访问信息,您必须传递 QModelIndex 和角色:

def data(self, index, role=Qt.DisplayRole):

在您的情况下,它应该类似于以下内容:

mymodel.data(mymodel.index(number_of_row, 0), value_of_role)

例如我对之前的.qml进行了修改,最重要的是下面的代码:

Row{
    id: row2
    height: 40
    anchors.bottom: parent.bottom
    spacing: 100
    ComboBox {
        id: comboBoxRole2
        width: 150
        model: [ "name", "value1", "value2", "value3", "value4"]
    }

    ComboBox {
        id: number
        width: 150
        model: mymodel.rowCount()
    }

    Label{
        id: output
        text: mymodel.data(mymodel.index(number.currentIndex, 0), Qt.UserRole+1 + comboBoxRole2.currentIndex)
    }
}

您可以在下面的 link.

中找到完整的示例