在QTreeView中更容易找到QModelIndex的可见行
有没有办法获得给定QModelIndex
的“可视化行”?在QTreeView中更容易找到QModelIndex的可见行
比方说,我们有一棵树,其中一些节点扩大了,一些没有。例如,采取局部展开的树,然后单击最后一个项目:
item1 # (visual) row 1
item2 # 2
item5 # 3
item7 # 4
item8 # 5 <-- click here
我想知道,我的项目是点击第5行中,编程。 QModelIndex
的行和列没有帮助,因为这里有层次结构。
如果所有的行具有相同的高度,就可以计算可视化排这样的:
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则位置更简单的方法]
不行,如果行将有不同的高度 –
@DmitrySazonov:是的,这就是我说的在第一句话中。 –
是的,同意。我瞎了。投了票。 –
可能重复(HTTP:/ /*.com/questions/1739643/easier-way-to-find-visual-position-of-qmodelindex-in-qtreeview) –