【问题标题】:how to access data elements from AbstractListModel in qml如何在 qml 中从 AbstractListModel 访问数据元素
【发布时间】:2018-06-23 17:40:13
【问题描述】:

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

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

【问题讨论】:

    标签: python-3.x pyqt qml pyqt5 pyq


    【解决方案1】:

    如果您想访问信息,您必须传递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中找到完整的示例。

    【讨论】:

      猜你喜欢
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多