我编写了一个小型数据库项目来处理工资单记录。这些工资单记录将被放入tableview对象中进行查看。如何在TableView中搜索特定记录?不管怎么说,请帮帮我。
答案 0 :(得分:2)
如果您正在使用模型/视图范例,则可以考虑使用位于QAbstractItemModel类中的“match()”方法。例如,请参阅以下代码段:
model->match(model->index(0,0),
Qt::DisplayRole,
pattern, -1,
Qt::MatchContains | Qt::MatchRecursive );
这是一个代码,我用来在TreeView中找到一个模式字符串。标志被设置为定位那些在其显示角色表示中具有“模式”的记录,搜索是通过树递归执行的(在TableView中你不需要它,我相信:))。
答案 1 :(得分:0)
可以在您的(源)模型和视图之间插入代理模型以过滤模型数据。看看QSortFilterProxyModel
,它允许对模型行/列进行排序。为密钥提供正确的正则表达式,如果找到则只匹配一个项目。您可以像通常的模型一样使用代理模型(例如检查rowCount),因此它会自动更新,并可以在其他视图中使用。