crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как сохранить отрисовку стиля item в QStyledItemDelegate::paint
r485_post
  опции профиля:
сообщение 15.11.2010, 23:20
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 10
Регистрация: 31.7.2009
Пользователь №: 970

Спасибо сказали: 0 раз(а)




Репутация:   0  


Допустим в переопределении функции QStyledItemDelegate::paint имеется следующий код:

   QStyleOptionViewItemV4 opt (option); 
    opt.text = "...";
    opt.icon = QIcon("...");
    opt.features |= QStyleOptionViewItemV2::HasDecoration;

    QApplication::style ()->drawControl(QStyle::CE_ItemViewItem, &opt, painter );


QStyleOptionViewItemV4 позволяет нам по сравнению со своими предшественниками (QStyleOptionViewItem, QStyleOptionViewItemV1, QStyleOptionViewItemV2, QStyleOptionViewItemV3) задать иконку, текст и ещё кое-что стандартным способом без ручной отсисовки. Иконку, текст и всё, что там ещё можно мы изменим, но стиль итема, который я задал вот так ListView->setStyleSheet ( "QListView:item { backgrond: red; }"); исчезнет. Будет стиль, заданный по умолчанию + наши иконка, текст и т.д. Я для примера привел простой backgrond. Простой backgrond можно задать и через кисть, но у меня в программе сложный градиент + бордер + другой градиент для состояния selected. Вообщем мне нужно сохранить стиль, так как воспроизводить его руками через painter это фу как не красиво.

Кто с таким сталкивался ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.11.2024, 20:12