我有一个普通的QTreeView,一个自定义QAbstractItemModel和一个自定义QSortFilterProxyModel。
我已经重新实现了QSortFilterProxyModel :: filterAcceptsRow以我想要的方式过滤模型中的项目,但是现在我希望在树视图中展开这些过滤的项目。
显而易见的解决方案是在找到接受的项目时从QSortFilterProxyModel :: filterAcceptsRow()发出信号,然后将该信号连接到QTreeView :: expand()。
但是,QSortFilterProxyModel :: filterAcceptsRow()是const,所以我无法从该方法内部发出信号。 QSortFilterProxyModel没有任何其他信号可以帮助我..我开始认为我必须继承QTreeView,我宁愿不做(少代码==更好)。
那么,有没有办法自动扩展filtermodel接受的那些项目?
答案 0 :(得分:2)
QTreeView有一个“expandAll”插槽,可以在设置模型后调用。我认为这应该做你想做的事。