我正在努力解决以下问题:
当用户点击列表中的一个条目时,他(使用StackView)被移动到第二个QML,并包含所有细节。
在详细信息页面上,用户可以修改数据并进行保存。问题是,在执行此操作后,列表不会刷新(例如,当用户添加新学生时,列表中没有新条目)。
这背后的原因是当我打开DetailsPage时,我正在创建一个可以访问SQL中同一个表的新模型。然后,当我提交更改时,新模型会更新,但不会更新旧模型(与列表连接的模型)。所以当我回到列表时,它仍然保留旧数据。
现在我正在寻找解决问题的方法,我有一些想法,但我不确定哪一个是最佳解决方案(可能没有):
目前,StudentList中的模型被声明为:
SqlDb {
id: sqlModel
onDataChanged: {
console.log("TROLO")
}
}
所以里面什么都没有。打开DetailsPage时,我需要指定名称来过滤结果,使其看起来像:
Layout.fillHeight: true
SqlDb {
id: sql_model
name: studentName
onDataChanged: {
console.log("TRALA")
}
}
提交更改时,我得到了" TRALA"印刷但不是" TROLO"。
我主要使用这个官方的Qt教程 https://doc.qt.io/qt-5/qtquickcontrols2-chattutorial-example.html