Russian Qt Forum

Qt => Model-View (MV) => Тема начата: RustAlex от Сентябрь 21, 2015, 17:44



Название: Наложение изображения на ListView
Отправлено: RustAlex от Сентябрь 21, 2015, 17:44
Как наложить изображение на ListView чтобы оно прокурилось вместе с ним.
Т.е. например
- прямоугольник которых захватывает область двух делегатов и при прокрутке двигается вмести с ним.
- захватывает часть делегата, полностью второй делегат, и часть третьего делегата.

Для выделение областей в Дне - который представлен последовательностью часов. - каждый час отдельный делегат.
Может где пример есть.


Название: Re: Наложение изображения на ListView
Отправлено: RustAlex от Сентябрь 21, 2015, 19:57
Вроде понятно:
Надо отключить
 clip: false

и рисовать из последнего делегата если изображение надо наложить поверх отображения списка: if (index === count-1),
или рисовать из первого делегата, если изображение должно быть подлодкой к отображаемому списку if(index === 0)


Название: Re: Наложение изображения на ListView
Отправлено: RustAlex от Сентябрь 23, 2015, 14:50
К сожалению отображаются прямоугольники только если сам делегат находится в зоне видимости. Т.е. надо от последнего видимого делегата плясать, динамически отслеживая... может есть более правильный способ?


Название: Re: Наложение изображения на ListView
Отправлено: Racheengel от Сентябрь 23, 2015, 15:41
Это жесть какая-то. Что должно получиться? Можно картинку и пример использования?


Название: Re: Наложение изображения на ListView
Отправлено: RustAlex от Сентябрь 24, 2015, 09:57
Помимо вывода информации с наложением на несколько делегатов, необходимо чтобы по клику - слева можно было вывести подробную информацию - шапка которой отображается в прямоугольнике.


Название: Re: Наложение изображения на ListView
Отправлено: Racheengel от Сентябрь 24, 2015, 10:53
Смотрите в сторону QTableView. Он умеет объединять несколько ячеек в одну (setSpan) и заселять ее кастомным виджетом (setCellWidget).


Название: Re: Наложение изображения на ListView
Отправлено: RustAlex от Сентябрь 29, 2015, 16:30
Медленно познается дзен...
Ограничение на зону видимости делегата из которого рисуется что-либо можно снять:

Код:
displayMarginEnd: 1200
displayMarginBeginning: 1200

позволяют видеть отображаемое изнутри делегатов изображение превышающее размер делегата, и оттягивает отображение на участок ListView даже когда сам делегат уплыл из зоны видимости