I found 这个问题 https://stackoverflow.com/q/41634176/595305 and 这个问题 https://stackoverflow.com/q/15817429/595305.
我也在其他地方搜索过。
情况是(从折叠的所有根项子项开始)我的代码迭代树,扩展那些数据符合特定条件的项的父项。
我只想找到显示的总显示行数QTreeView
在该过程结束时。注意,我使用“显示”一词而不是“可见”,因为这不是关于视口的问题:我希望显示的总数假设视口足够大,不必创建垂直滚动条。
难道真的没有简单的方法来实现这一目标吗?例如,当它们展开时,通过计算以这种方式扩展的所有父级的所有子级来计算显示的总子级将是相当复杂的:有时,例如,两个兄弟姐妹满足标准,因此第一个扩展其父级,但第二个显然没有。不仅如此,位于树深处的节点不仅扩展其自己的父节点,而且(如果需要)其祖父母、曾祖父母等。
鉴于上述的复杂性,另一种可能性是迭代树again,展开后,以便计算显示的行数。仅仅为了获取如此简单的信息而做出的努力似乎是可笑的。
请注意我说的是QTreeViews
, not QTableView
s。对于后者,似乎可以使用table_view.verticalHeader().count()
. But a QTreeView
没有方法verticalHeader
.
QTreeView提供了indexAbove() https://doc.qt.io/qt-5/qtreeview.html#indexAbove and indexBelow() https://doc.qt.io/qt-5/qtreeview.html#indexBelow函数,后者:
返回下面项目的型号索引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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)