1

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

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

4

1 回答 1

0

如果要访问信息,QModelIndex则必须传递 a 和角色:

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)
    }
}

您可以在以下链接中找到完整的示例。

于 2018-01-15T11:28:55.703 回答