【发布时间】:2016-10-01 23:41:29
【问题描述】:
我有自己的类,它继承自具有树结构的 QAbstractItemModel。
我使用了几个视图,显示该模型的过滤数据,使用派生自 QSortFilterProxyModel 的类。
我的模型结构如下所示:
root
|
-- A
| |-A1
| |-A2
| |-A3
|
-- B
| |-B1
| |-B2
|
... and so on...
其中 A, B .... 是“主行”(根的子行),而 A1, A2, ... B1, B2... 是“子行” - 附加到“主行”的节点行”。
现在,我需要做的是一个仅显示“子行”的 QTableView:
A1
A2
A3
B1
B2
但是我在 QSortFilterProxyModel (filterAcceptsRow, filterAcceptsColumn) 中找到的过滤方法只对主行起作用...
我该怎么做?
(我发现了非常相似的问题,但仍然没有答案:QTableView to display only leaves of a tree model implemented with QAbstractItemModel)
【问题讨论】:
-
你需要自己写
QAbstractProxyModel。但这是一项复杂的任务,因为您需要对索引进行大量工作。我建议您在原始数据上再写一个QAbstractListModel。
标签: c++ qt model-view-controller qtreeview model-view