在QTreeView中更容易找到QModelIndex的可见行

问题描述:

有没有办法获得给定QModelIndex的“可视化行”?在QTreeView中更容易找到QModelIndex的可见行

比方说,我们有一棵树,其中一些节点扩大了,一些没有。例如,采取局部展开的树,然后单击最后一个项目:

item1 # (visual) row 1 
    item2 # 2 
    item5 # 3 
item7 # 4 
    item8 # 5 <-- click here 

我想知道,我的项目是点击第5行中,编程。 QModelIndex的行和列没有帮助,因为这里有层次结构。

+0

可能重复(HTTP:/ /*.com/questions/1739643/easier-way-to-find-visual-position-of-qmodelindex-in-qtreeview) –

如果所有的行具有相同的高度,就可以计算可视化排这样的:

int visual_row(const QTreeView *tv, const QModelIndex &mi) 
{ 
    const QRect visualRect = tv->visualRect(mi); 
    if (visualRect.isValid()) 
     return visualRect.y()/visualRect.height(); 
    else 
     return -1; // invisible 
} 
的[找到(视觉)QModelIndex在QTreeView则位置更简单的方法]
+0

不行,如果行将有不同的高度 –

+1

@DmitrySazonov:是的,这就是我说的在第一句话中。 –

+0

是的,同意。我瞎了。投了票。 –