我有我自己的QAbstractTableModel
连接到SQLite。我从数据库获取数据并按列名将其写入我的列表。我不想在查找数据时通过SQL查询处理我的表。Qt QAbstractModel寻找数据
你认为怎么样?这是正常的吗?
请给我一些建议。
我有我自己的QAbstractTableModel
连接到SQLite。我从数据库获取数据并按列名将其写入我的列表。我不想在查找数据时通过SQL查询处理我的表。Qt QAbstractModel寻找数据
你认为怎么样?这是正常的吗?
请给我一些建议。
要搜索模型中的数据,您可以使用QSortFilterProxyModel。您将模型设置为代理模型的源模型,并在“搜索结果”视图中显示代理模型。
您可以使用setFilterRegExp()
和setFilterKeyColumn()
来指定您正在查找的名称和“名称”列。如果您想要更复杂的过滤,您也可以将其子类化。有an example in the doc。
不,QtSQL模块不提供任何ORM,所以你必须自己编写SQL查询。
但是,您可以使用QSortFilterProxyModel(或其子类,或者甚至在您的子类QAbstractTableModel
中放置过滤代码)进行搜索/过滤。但我建议你不要这样做,因为关系数据库可能会(并且很可能会)优化您的搜索。
你应该尝试重写这个问题,我不确定你在问什么。你只是在寻找[QSqlTableModel](http://qt-project.org/doc/qt-4.8/qsqltablemodel.html)?它位于文档以及其他Qt Sql类(http://qt-project.org/doc/qt-4.8/qtsql.html),如QSqlRelationalTableModel。 – Leiaz
我的问题是,我从sqlite获取数据,并将它们写入模型,当我搜索任何数据为exp某人的名字我不想写入sql命令我想用我的模型找到它们 – developer