有什么方法可以获取当前可见项目的列表QAbstractItemView
吗?并且,如果可能的话,接收有关更改此列表的任何通知。
Upd:我问QAbstractItemView
的QTreeView
是非简单结构,而不是QTableView
.
Upd2:我正在使用复选框实现树视图模型。我想要下一个行为(检查/取消检查相同):
- 如果选中其中一个复选框 - 则必须选中所有子项
- 如果所有子复选框都被选中 - 那么父复选框也应该被选中。对于父母的父母也是如此,依此类推......
检查状态由外部数据源监控/修改,因此我需要一种机制来更新所有更改的子/父。dataChanged
信号对我来说是不够的,因为构建所有更改QModelIndex
以进行更新的列表非常广泛。而且根本没有必要,因为所有新数据都将从QAbstractItemModel::data
.
我发现下一个肮脏的黑客来更新所有项目:emit dataChanged( QModelIndex(), QModelIndex() );
但它没有记录无效索引。
所以,我需要一种方法来强制所有可见项目用新数据重新绘制它们的内容。