如何从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.
中找到完整的示例
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.
中找到完整的示例