要动态更新QML TableModel的数据,可以使用以下步骤:

  1. 创建一个QML TableModel对象,并将其绑定到QML视图中的TableView组件。
TableView {
    model: myTableModel
    // ...
}
  1. 在QML中定义一个JavaScript对象,用于存储数据。
// 在QML中定义JavaScript对象
property var myData: [
    { name: "John", age: 25 },
    { name: "Amy", age: 30 },
    { name: "Tom", age: 35 }
]
  1. 创建一个QML TableModel对象,并将其设置为上面定义的JavaScript对象的属性值。
// 创建QML TableModel对象
TableModel {
    id: myTableModel
    // 设置列名
    roleNames: ["name", "age"]
    // 设置行数
    rowCount: myData.length
    
    // 设置数据
    Component.onCompleted: {
        for (var i = 0; i < myData.length; i++) {
            // 添加数据行
            appendRow({ "name": myData[i].name, "age": myData[i].age })
        }
    }
}
  1. 在需要更新数据的地方,例如按钮点击事件中,更新JavaScript对象的数据。然后通过重新设置TableModel的行数和数据来更新TableModel的数据。
Button {
    text: "Update Data"
    onClicked: {
        // 更新数据
        myData[0].name = "Mike"
        myData[0].age = 28
        
        // 更新TableModel的行数和数据
        myTableModel.rowCount = myData.length
        myTableModel.clear()
        for (var i = 0; i < myData.length; i++) {
            myTableModel.appendRow({ "name": myData[i].name, "age": myData[i].age })
        }
    }
}

通过以上步骤,当点击"Update Data"按钮时,QML TableModel的数据将动态更新,并在TableView中显示更新后的数据


原文地址: https://www.cveoy.top/t/topic/hQsm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录