我有一個派生自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