我有自己的QAbstractTableModel
连接到 SQLite。我从数据库中获取数据并按列名将其写入我的列表。在查找数据时,我不想通过 SQL 查询来处理我的表。
你有什么想法?正常吗?
请给我一些建议。
我有自己的QAbstractTableModel
连接到 SQLite。我从数据库中获取数据并按列名将其写入我的列表。在查找数据时,我不想通过 SQL 查询来处理我的表。
你有什么想法?正常吗?
请给我一些建议。
要搜索模型中的数据,您可以使用QSortFilterProxyModel。您将模型设置为代理模型的源模型,并在“搜索结果”视图中显示代理模型。
例如,您可以使用setFilterRegExp()
和setFilterKeyColumn()
指定您要查找的名称和“名称”列。如果您想要更复杂的过滤,您也可以将其子类化。文档中有一个示例。
不,QtSQL 模块不提供任何ORM,因此您必须自己编写 SQL 查询。
但是,您可以使用QSortFilterProxyModel(或它的子类,甚至将过滤代码放在您的子类中QAbstractTableModel
)进行搜索/过滤。但我建议您不要这样做,因为关系数据库可能(并且很有可能会)优化您的搜索。