kri*_*ajb 3 qt filtering qtableview
我似乎无法一次过滤多个列.我认为这是使用过滤器的常见用法,也许我错过了一些东西.
例如,我在我的4列QTableView,让我们说列X (string), Y (int), Z (string), Q (string).我希望通过筛选filter_1列X和过滤的filter_2列Z.是否可以QSortFilterProxyModel为多个列(动态)设置过滤器,但不是全部(重新实现filterAcceptsRow).
谢谢
您可以使用setFilterRegExp(),setFilterWildcard()或setFilterFixedString()方法来设置过滤器.QT doc的一个例子是:
proxyModel->setFilterRegExp(QRegExp(".png", Qt::CaseInsensitive,
QRegExp::FixedString));
proxyModel->setFilterKeyColumn(1);
Run Code Online (Sandbox Code Playgroud)
如果这些方法不够,根据Qt文档,定制代理模型旨在通过继承来使用.
对于高级用户,可以对QSortFilterProxyModel进行子类化,从而提供一种可以实现自定义过滤器的机制.
在这种情况下,您需要子类并覆盖filterAcceptsRow()方法.