문제

Is there a way to get "visual row" of a given QModelIndex?

Let's say we have a tree with some nodes expanded and some not. For example, take a partially expanded tree and click on a last item:

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

I want to know that item I clicked is in the 5th row, programmatically. QModelIndex's rows and columns are not helpful, as there is hierarchy here.

도움이 되었습니까?

해결책

If all of your rows have the same height, you can compute the visual row like this:

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 ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top