qtsql-querymodel-editablesqlmodel:为什么需要刷新?

时间:2016-11-19 15:53:23

标签: sql qml

我以http://doc.qt.io/Qt-5/qtsql-querymodel-editablesqlmodel-cpp.html为例进行研究 我有一个问题,为什么在查询UPDATE语句后,模型在视图上被清除(视图为空)并在刷新调用SELECT语句后显示数据? 我想是的,没有SELECT运行,模型也不必改变。

1 个答案:

答案 0 :(得分:0)

模型直接显示SELECT查询的结果,因此在查询时显示数据库的状态。

更新数据库的代码使用的操作不会直接影响模型的内部数据(前一个SELECT查询的缓存结果),因此就视图而言,没有任何变化。

SELECT中再次应用refresh()查询会更新模型对该数据库状态的了解,从而导致视图中出现新数据。

“清除”是由clear()中对setData()的调用引起的。 不知道它为什么存在,我认为没有必要。