Qt QAbstractModel寻找数据

时间:2012-11-22 11:04:56

标签: sql qt model qabstracttablemodel

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

你怎么看?这是正常的吗?

请给我一些建议。

2 个答案:

答案 0 :(得分:1)

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

您可以使用setFilterRegExp()setFilterKeyColumn()来指定您要查找的名称和“名称”列。如果您想要更复杂的过滤,也可以将其子类化。有an example in the doc

答案 1 :(得分:0)

  1. 不,QtSQL模块不提供任何ORM,因此您必须自己编写SQL查询。

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