Название: Проблемы с отображением подписей в QListView Отправлено: BagmutA от Июль 18, 2011, 13:13 Использую QListView для отображения изображений.
Если поставить в свойствах Код , то отображение большего числа картинок происходит достаточно долго. Если же поставить в свойствах QListView Код , отображение происходит быстро (картинки отображаются правильно), но подписи к ним, которые я добавляю в модель для даной картинки: Код отображаются справа от картинки а не снизу, как я хочу. Как заставить QListView отображать эти подписи снизу? Название: Re: Проблемы с отображением подписей в QListView Отправлено: twp от Июль 18, 2011, 14:58 можно попробовать так
Код: myModel->setData(index, Qt::AlignBottom, Qt::TextAlignmentRole); Название: Re: Проблемы с отображением подписей в QListView Отправлено: BagmutA от Июль 18, 2011, 16:31 В режиме ListMode отображает: -- вложение 1
Если использовать Код , то: -- вложение 2 А надо чтобы было: -- вложение 3. Название: Re: Проблемы с отображением подписей в QListView Отправлено: twp от Июль 18, 2011, 18:32 значит не получится сдлеать стандартными методами, нужно свой делегат делать в котором отрисовывать контент должным образом
Название: Re: Проблемы с отображением подписей в QListView Отправлено: BagmutA от Июль 18, 2011, 22:44 Я унаследовал QItemDelegate:
Код Для QListView умтановил делегата: Код Как мне теперь нарисовать картинку и подпись под ней? Если в paint рисовать: Код то картинки рисуются обрезаными (option.rect меньше картинки и gridSize или iconSize) И вообще как изменить option.rect? Название: Re: Проблемы с отображением подписей в QListView Отправлено: twp от Июль 19, 2011, 11:14 Нужно переопределить в своем делегате метод QItemDelegate::sizeHint() и возвращать нужный размер для индекса
Название: Re: Проблемы с отображением подписей в QListView Отправлено: GreatSnake от Июль 19, 2011, 11:35 Код
Чем не устроил QAbstractItemModel::setData()? Наверное для начала не мешало бы изучить Программирование модель/представление (http://www.doc.crossplatform.ru/qt/4.7.x/model-view-programming.html). Название: Re: Проблемы с отображением подписей в QListView Отправлено: BagmutA от Июль 19, 2011, 12:32 Код
Чем не устроил QAbstractItemModel::setData()? Наверное для начала не мешало бы изучить Программирование модель/представление (http://www.doc.crossplatform.ru/qt/4.7.x/model-view-programming.html). Код Так вот проблема в том, как в режиме QListView::ListMode заставить текст заданый Код отрисовыватся под иконкой а не справа? Название: Re: Проблемы с отображением подписей в QListView Отправлено: BagmutA от Июль 19, 2011, 12:37 Нужно переопределить в своем делегате метод QItemDelegate::sizeHint() и возвращать нужный размер для индекса То есть делать вот так:Код Но на сколько я понимаю необходимо QSize возвращаемый этой функцией передать QStyleOptionViewItem& option. А как это сделать? Название: Re: Проблемы с отображением подписей в QListView Отправлено: twp от Июль 19, 2011, 13:50 по идее этого достаточно. Единственное что в методе sizeHint нужно еще учесть размер для текста
Название: Re: Проблемы с отображением подписей в QListView Отправлено: BagmutA от Июль 19, 2011, 14:06 по идее этого достаточно. Единственное что в методе sizeHint нужно еще учесть размер для текста Да все работает, большее спасибо(у меня была маленькая ошибка).Название: Re: Проблемы с отображением подписей в QListView Отправлено: BagmutA от Июль 19, 2011, 14:10 Код
Чем не устроил QAbstractItemModel::setData()? Наверное для начала не мешало бы изучить Программирование модель/представление (http://www.doc.crossplatform.ru/qt/4.7.x/model-view-programming.html). При первом отображении создается массив пиксмапов и они потом отрисовываются? Название: Re: Проблемы с отображением подписей в QListView Отправлено: twp от Июль 19, 2011, 21:23 При первом отображении создается массив пиксмапов и они потом отрисовываются? в смысле? пиксмапы как и все остальные данные хранятся в модели |