在另一个线程中使用QSqlQueryModel并直接通过主线程的指针访问它?

时间:2012-08-05 15:45:02

标签: multithreading qt

我使用了QSqlQueryModel的子类来公开我的QML项目中ListView的数据。我想在同一时间做这两件事:

  1. 使用带有模型指针setContextProperty()将模型展示给QML。

  2. 将模型保留在另一个线程中,这样当我调用模型update()函数(执行最后一个查询以反映数据库中更改的数据)时,模型在重新查询时不会阻止UI数据库中。

  3. 有可能吗?如果没有,什么是更好的解决方案?

1 个答案:

答案 0 :(得分:0)

我的解决方案是:子类QThread,将QmlApplicationViewer指针传递给它的构造函数,并在新类DatabaseQueryThread内,我为那里的查看器设置了context属性。这样,Qt将允许我直接通过指针访问查询模型。