Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: CroCIV от Октябрь 27, 2010, 14:43



Название: [РЕШЕНО] Нужен пример с QStyleOptionViewItemV4 в связке с QStyledItemDelegate
Отправлено: CroCIV от Октябрь 27, 2010, 14:43
Доброго,
в частности интересует демонстрация работы с

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

Знакома поди кому эта тема?


Название: Re: Нужен пример с QStyleOptionViewItemV4 в связке с QStyledItemDelegate
Отправлено: GreatSnake от Октябрь 28, 2010, 10:32
Тема знакома. Объясни зачем это нужно тебе?


Название: Re: [РЕШЕНО] Нужен пример с QStyleOptionViewItemV4 в связке с QStyledItemDelegate
Отправлено: CroCIV от Октябрь 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);
...
}

Спасибо за внимание  ::)


Название: Re: [РЕШЕНО] Нужен пример с QStyleOptionViewItemV4 в связке с QStyledItemDelegate
Отправлено: GreatSnake от Октябрь 28, 2010, 11:21
А в QDelegateForGEMTable::sizeHint() учитываете, что размеры ячейки должны рассчитываться с учётом иконки?


Название: Re: [РЕШЕНО] Нужен пример с QStyleOptionViewItemV4 в связке с QStyledItemDelegate
Отправлено: CroCIV от Октябрь 28, 2010, 12:04
Зачем? При вызове style->drawControl(QStyle::CE_ItemViewItem, &opt, painter)
в QCommonStylePrivate происходит вызов subElementRect(SE_ItemViewItemDecoration, vopt, widget), который "подгоняет" размер иконки под размер, указаный в opt.rect (края рисуемой ячейки)


Название: Re: [РЕШЕНО] Нужен пример с QStyleOptionViewItemV4 в связке с QStyledItemDelegate
Отправлено: GreatSnake от Октябрь 28, 2010, 12:09
Ну-ну)
Только вот header про это ничего  не знает. Щёлкните дважды по правому разделителю колонки в заголовке и увидите.


Название: Re: [РЕШЕНО] Нужен пример с QStyleOptionViewItemV4 в связке с QStyledItemDelegate
Отправлено: CroCIV от Октябрь 28, 2010, 12:43
О эта проблема принебрежительно мала  :)