2013-07-09 4 views
0

Необходимо найти общую высоту QListView, а не высоту его просмотра.Общая прокручиваемая высота QListView

Это просто с QScrollArea, который является производным от базового класса QAbstractScrollArea, как QListView:

QScrollArea *sa; 
sa->widget()->height(); // total height 
sa->viewport()->height(); // viewport height 

Но я не мог найти аналогичную функцию для QListView. В случае отсутствия такой удобной функции, какой лучший способ рассчитать общую высоту?

ответ

0

Ну, это нехорошо, но это единственный рабочий способ, который я знаю. Используйте view->visualRect(index).bottom(), где index - это индекс последнего элемента. Но это может быть неточно. Например, если вы хотите установить высоту представления на основе этого значения, вам лучше добавить несколько пикселей.

+0

Благодарим за ответ. Кстати, мне было интересно, можем ли мы получить длину ручки вертикальной полосы прокрутки и вывести ее общую высоту из этого? Я понимаю, что это будет неточно, но общее решение, основанное на QAbstractScrollArea, будет отличным –

+0

Хорошая идея. Вы можете сделать это, используя 'verticalScrollBar() -> maximum() - verticalScrollBar() -> minimum()'. Скажите, если это сработает. Но имейте в виду, что полосы прокрутки не всегда отображаются по умолчанию. –

Смежные вопросы