Russian Qt Forum
Ноябрь 24, 2024, 05:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Нужен пример с QStyleOptionViewItemV4 в связке с QStyledItemDelegate  (Прочитано 5630 раз)
CroCIV
Гость
« : Октябрь 27, 2010, 14:43 »

Доброго,
в частности интересует демонстрация работы с

QStyleOptionViewItemV4::checkState
QStyleOptionViewItemV4::icon
QStyleOptionViewItemV4::index
QStyleOptionViewItemV4::text

Знакома поди кому эта тема?
« Последнее редактирование: Октябрь 28, 2010, 10:58 от CroCIV » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Октябрь 28, 2010, 10:32 »

Тема знакома. Объясни зачем это нужно тебе?
Записан

Qt 5.11/4.8.7 (X11/Win)
CroCIV
Гость
« Ответ #2 : Октябрь 28, 2010, 11:12 »

Эх все сам, все сам ))

А я хотел в определенный момент вместо определенного целочисленного значения подсовывать соответствующую ему картинку,
вначале делал так:
QStyledItemDelegate::paint(painter,option,index);
painter->drawPixmap(...)
совсем не понравилось,
хотелось бы нечто менее индусское.

архив Qt саппорт + отладчик показали решение:

Код:
void QDelegateForGEMTable::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
...
QStyleOptionViewItemV4 opt = option;
opt.text = "...";
opt.icon = QIcon(...);
opt.features |= QStyleOptionViewItemV2::HasDecoration;

QStyle *style = opt.widget->style();
style->drawControl(QStyle::CE_ItemViewItem, &opt, painter);
...
}

Спасибо за внимание  Строит глазки
« Последнее редактирование: Октябрь 28, 2010, 11:15 от CroCIV » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Октябрь 28, 2010, 11:21 »

А в QDelegateForGEMTable::sizeHint() учитываете, что размеры ячейки должны рассчитываться с учётом иконки?
Записан

Qt 5.11/4.8.7 (X11/Win)
CroCIV
Гость
« Ответ #4 : Октябрь 28, 2010, 12:04 »

Зачем? При вызове style->drawControl(QStyle::CE_ItemViewItem, &opt, painter)
в QCommonStylePrivate происходит вызов subElementRect(SE_ItemViewItemDecoration, vopt, widget), который "подгоняет" размер иконки под размер, указаный в opt.rect (края рисуемой ячейки)
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Октябрь 28, 2010, 12:09 »

Ну-ну)
Только вот header про это ничего  не знает. Щёлкните дважды по правому разделителю колонки в заголовке и увидите.
Записан

Qt 5.11/4.8.7 (X11/Win)
CroCIV
Гость
« Ответ #6 : Октябрь 28, 2010, 12:43 »

О эта проблема принебрежительно мала  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.122 секунд. Запросов: 23.