Название: QTreeView – как определить видимые индексы? Отправлено: Aleskey от Января 29, 2008, 01:13 Здравствуйте
Есть модель, есть прокси модель, все подключено к QTreeView, все замечательно работает. Но надо по нажатию кнопки определить индексы видимых в данный момент в QTreeView итемов. Сильно не пинайте. В Qt новичок. Полазил по Assistant и по форуму но что то не чего подходящего не нашел. Спасибо ЗЫ. Qt 4.2.2 Название: Re: QTreeView – как определить видимые индексы? Отправлено: ритт от Января 29, 2008, 02:30 индексы в модели? смотри документацию по проксе и абстрактпроксе (мап2соурч, кажись)
советую переходить на 4.3(.3), т.к. в 4.2.х прокси довольно ущербные Название: Re: QTreeView – как определить видимые индексы? Отправлено: Aleskey от Января 29, 2008, 09:24 Да, мне нужны индексы в модели. Объясню поподробнее. Данные хранятся в модели в QList-е. С помощью прокси они фильтруются в QTreeView. mapToSource используется. По одиночному клику на итеме в QTreeView я без проблем получаю нужный индекс в модели и достаю нужные данные. Сейчас мне надо получить все индексы итемов видимых в данный момент на экране в QTreeView. Мне надо что то похожее на selectedIndexes() у QItemSelectionModel. Оно возвращает QModelIndexList выделенных в данный момент итемов. Только мне надо не выделенных а видимых в данный момент итемов.
Перейти на 4.3 нельзя. У заказчика версия 4.2.2 Спасибо. Название: Re: QTreeView – как определить видимые индексы? Отправлено: Tonal от Января 29, 2008, 13:43 А кто мешает просто пройтись по итемам фильтра?
Если тебе нужны именно видимые, тогда этот список можно отфильтровать по QTreeView::visualRect(item).isValid(), например. Или с помощью indexAt узнать верхний элемент, и перебирать пока видимые. :-) Название: Re: QTreeView – как определить видимые индексы? Отправлено: ритт от Января 29, 2008, 13:50 видимо, я недопонял первоначальный вопрос
если строк не много, перебирай визуалРект всех имеющихся индексов :) /* сейчас не могу ничего умнее предложить - нет времени лезть в асистант */ АПД: либо у Тонал'а тоже нет времени, либо других вариантов просто нет |