【发布时间】:2011-10-05 04:02:06
【问题描述】:
我有一个 QTreeView,我希望在其中过滤内容。我只希望在顶级子级(根索引下方的那些)上过滤这些内容。目前我通过在我的 QTreeView 子类中创建一个简单的过滤方法并选择性地隐藏那些不匹配的行来实现这一点。
虽然上述方法似乎工作正常,但我想知道是否应该使用 QSortFilterProxyModel 重新实现它。如果是这样,有什么好处?
如果我改用 QSortFilterProxyModel,我有几个(希望是小问题)问题:
1) 由于我只过滤顶级子级,因此我必须重新实现实际进行排序的任何方法,以便让所有的孙子不受影响,对吧?
2) 我的数据模型中有许多自定义方法,它们负责独特的键盘导航等。我是否在代理模型中重新实现这些并让它们指向我的数据模型的方法?如果是这样,我如何引用模型?我似乎找不到任何可以与 QTreeView 的 model() 方法相媲美的东西。
谢谢!
【问题讨论】: