1

我有自己的QAbstractTableModel连接到 SQLite。我从数据库中获取数据并按列名将其写入我的列表。在查找数据时,我不想通过 SQL 查询来处理我的表。

你有什么想法?正常吗?

请给我一些建议。

4

2 回答 2

1

要搜索模型中的数据,您可以使用QSortFilterProxyModel。您将模型设置为代理模型的源模型,并在“搜索结果”视图中显示代理模型。

例如,您可以使用setFilterRegExp()setFilterKeyColumn()指定您要查找的名称和“名称”列。如果您想要更复杂的过滤,您也可以将其子类化。文档中有一个示例

于 2012-11-23T12:22:09.277 回答
0
  1. 不,QtSQL 模块不提供任何ORM,因此您必须自己编写 SQL 查询。

  2. 但是,您可以使用QSortFilterProxyModel(或它的子类,甚至将过滤代码放在您的子类中QAbstractTableModel)进行搜索/过滤。但我建议您不要这样做,因为关系数据库可能(并且很有可能会)优化您的搜索。

于 2012-11-23T12:24:26.533 回答