繁体   English   中英

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

[英]Easier way to find visible row of a QModelIndex in a 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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM