我有一个派生自QAbstractItemModel的工作树模型,我希望使用QSortFilterProxyModel子类来过滤它,以仅显示某些条件的子节点。比如我有下面的树:如何使用QSortFilterProxyModel过滤仅与父母显示子节点的树模型?
A
- B
-- C1
-- C1
-- C1
--- C2
- D
- E
我想与该节点有名称的条件来过滤此树== C1和显示只有C1和他们的孩子的节点是这样的:
C1
C1
C1
- C2
我已经有filterAcceptsRow()子类中重新实现的,可以部分地做我想做的,但它仍然会显示C1节点的父母和祖父母:
A
- B
-- C1
-- C1
-- C1
--- C2
我认为这为b因为对于儿童节点甚至要考虑,他们的父母必须通过filterAcceptsRow()测试,对吗?我怎样才能实现filterAcceptRows()或其他方法,使它可以做我所描述的?
我在qtcentre和qtforum的某个时候问过这个问题,但没有得到任何有用的答复。我试图直接使用filterAcceptsRow()中的beginMoveRows和endMoveRows移动QSortFilterProxyModel子类的索引,但由于危险的const_cast而导致测试应用程序崩溃。
哇!真的没有人能够回答这个问题吗? – ksming