我现在有一个搜索按钮,我想搜索我的model.Thus的一个特定列,我只想在我的表视图中显示匹配的行。我将一个QSortFilterProxyModel*对象作为源附加到表视图中,并设置了一个QStandardItemModel*作为其源。然后,使用我的搜索按钮,我进行了以下连接
QObject::connect(ui.lineEditSearch,SIGNAL(textChanged(QString)),proxyModelFilter,SLOT(setFilterFixedString(QString)));现在,我的印象是,在键入相关行时,将返回相关行。然后,我意识到我没有指定希望筛选代理模型搜索哪些列。我知道我可以实现一个继承自QSortFilterProxyModel的类,并重新实现它的filterAcceptsRow。我想知道是否有一种方法可以避免创建继承自QSortFilterProxyModel的类,而只使用QSortFilterProxyModel类来判断何时调用插槽setFilterFixedString时搜索哪些列?
发布于 2013-11-28 10:40:20
要筛选的列可以通过QSortFilterProxyModel::filterKeyColumn设置。它允许指定单个列或所有列(-1,默认值)。
或者,可以定义一个自定义筛选器角色,返回要搜索的所有字符串的级联,并通过setFilterRole()设置它。
https://stackoverflow.com/questions/20260720
复制相似问题