TableView搜索

时间:2009-07-06 11:48:02

标签: c++ qt4 pyqt4

我编写了一个小型数据库项目来处理工资单记录。这些工资单记录将被放入tableview对象中进行查看。如何在TableView中搜索特定记录?不管怎么说,请帮帮我。

2 个答案:

答案 0 :(得分:2)

如果您正在使用模型/视图范例,则可以考虑使用位于QAbstractItemModel类中的“match()”方法。例如,请参阅以下代码段:

model->match(model->index(0,0), 
             Qt::DisplayRole, 
             pattern, -1, 
             Qt::MatchContains | Qt::MatchRecursive );

这是一个代码,我用来在TreeView中找到一个模式字符串。标志被设置为定位那些在其显示角色表示中具有“模式”的记录,搜索是通过树递归执行的(在TableView中你不需要它,我相信:))。

答案 1 :(得分:0)

可以在您的(源)模型和视图之间插入代理模型以过滤模型数据。看看QSortFilterProxyModel,它允许对模型行/列进行排序。为密钥提供正确的正则表达式,如果找到则只匹配一个项目。您可以像通常的模型一样使用代理模型(例如检查rowCount),因此它会自动更新,并可以在其他视图中使用。