计数显示(可见)行的 QTreeView
Count showing (visible) rows of a QTreeView
我找到了 and this question。
我也在别处搜索过。
情况是(从所有根项 children 折叠开始)我的代码遍历树,扩展数据符合特定条件的那些项的 parents。
我只想找到在该过程结束时 QTreeView
中显示的显示行总数。注意我使用“显示”而不是“可见”这个词,因为这不是关于视口的问题:我希望显示的总数假设视口足够大而不必创建垂直滚动条。
真的没有简单的方法可以实现吗?计算显示的总数 children,例如,计算以这种方式扩展的所有 parent 中的所有 children,随着它们的扩展,将非常复杂:有时,例如, 两个兄弟姐妹符合条件,所以第一个扩展了它的 parent,但第二个显然没有。不仅如此,位于树深处的节点不仅扩展了它自己的 parent,而且(如果需要)扩展了它的 grandparent、great-grandparent 等
鉴于上述情况的复杂性,另一种可能是在扩展后再次遍历树,以计算显示的行数。为了获得如此简单的信息,这似乎是一种荒谬的努力。
请注意,我说的是 QTreeViews
,而不是 QTableView
。对于后者,似乎可以使用 table_view.verticalHeader().count()
。但是 QTreeView
没有方法 verticalHeader
.
QTreeView提供了indexAbove()
and indexBelow()
个功能,后者:
Returns the model index of the item below index.
def count_showing_rows(self):
count = 0
index = self.model().index(0, 0)
while index.isValid():
count += 1
index = self.indexBelow(index)
return count
我找到了
我也在别处搜索过。
情况是(从所有根项 children 折叠开始)我的代码遍历树,扩展数据符合特定条件的那些项的 parents。
我只想找到在该过程结束时 QTreeView
中显示的显示行总数。注意我使用“显示”而不是“可见”这个词,因为这不是关于视口的问题:我希望显示的总数假设视口足够大而不必创建垂直滚动条。
真的没有简单的方法可以实现吗?计算显示的总数 children,例如,计算以这种方式扩展的所有 parent 中的所有 children,随着它们的扩展,将非常复杂:有时,例如, 两个兄弟姐妹符合条件,所以第一个扩展了它的 parent,但第二个显然没有。不仅如此,位于树深处的节点不仅扩展了它自己的 parent,而且(如果需要)扩展了它的 grandparent、great-grandparent 等
鉴于上述情况的复杂性,另一种可能是在扩展后再次遍历树,以计算显示的行数。为了获得如此简单的信息,这似乎是一种荒谬的努力。
请注意,我说的是 QTreeViews
,而不是 QTableView
。对于后者,似乎可以使用 table_view.verticalHeader().count()
。但是 QTreeView
没有方法 verticalHeader
.
QTreeView提供了indexAbove()
and indexBelow()
个功能,后者:
Returns the model index of the item below index.
def count_showing_rows(self):
count = 0
index = self.model().index(0, 0)
while index.isValid():
count += 1
index = self.indexBelow(index)
return count