【发布时间】:2015-01-11 16:31:18
【问题描述】:
在我的程序中,我使用了一个带有“论文”表的 sqlite 数据库。我有几个QTableviews 显示论文中包含的数据。每个视图一个模型。我像这样初始化我的模型:
model.setTable("papers")
但是,在每个QTableView 中,我只想显示数据的一个子集。该子集由 sql 查询确定。例如:
query = QtSql.QSqlQuery()
query.prepare("SELECT id FROM papers WHERE new=1")
query.exec_()
model.setQuery(query)
但是,如果我想对子集(而不是整个模型)执行附加查询,它开始变得非常复杂。所以我想知道是否有办法:
- 将通过 sql 查询获得的数据子集定义为模型
- 对查询执行附加查询
例如:
在我选择了 new=1 的所有项目后,我想要所有的 like=1。
【问题讨论】:
-
您可以创建一个临时表。但是,在大多数情况下,您只需在
where中添加额外的子句即可获得改进。 -
是的,但我很想避免在 where 语句中添加子句
-
您可以使用代理模型来添加您需要的命令。
-
Afaik,您可以在 Qt 中过滤视图,并展示可能来自不同查询的不同模型。我不知道什么更好,我只知道它有不同的可能性。