Russian Qt Forum
Июля 04, 2025, 15:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как изменить цвет текста одного итема в дереве  (Прочитано 2945 раз)
trot
Гость
« : Января 15, 2011, 13:16 »

Необходимо, в зависимости от какого-то условия, в дереве отображать тексты итемов разными цветами.
Один из вариантов сделать это через делегата переопределив метод paint. Но тут возникает проблема. Устанавливаю цвет пера (QPen) и вызываю базовый метод передав туда painter с новым цветом пера. И в итоге как отображался текст черным, так и отображается, т.е. никаких изменений. Прошелся по коду базового метода и обнаружил, что внутри метода цвет пера устанавливается свой, а не тот который мне нужен. Получается так, что используя базовый метод, нельзя получить желаемого эффекта. Переписать полностью метод paint, ради того чтобы поменять только цвет шрифта, считаю уж слишком затратным.
Подскажите может это все как-то проще решается.
Записан
shirushizo
Гость
« Ответ #1 : Января 15, 2011, 13:49 »

По идее должно сработать:
Код:
void Delegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
  //проверяем index
  QPallete customPallete;
  //... выставляем что надо
  option.pallete=customPallete;
  QItemDelegate::paint(painter, option, index);
}

А вообще можно в методе data возвращать нужный цвет по Qt::ForegroundRole   или Qt::TextColorRole, скорее всего в виде
qVariantFromValue(QColor(Qt::Green))
« Последнее редактирование: Января 15, 2011, 13:55 от shirushizo » Записан
trot
Гость
« Ответ #2 : Января 15, 2011, 14:13 »

Этот вариант тоже рассматривался, но QStyleOptionViewItem &option задан как const и соответственно изменить объект option нельзя.
Записан
shirushizo
Гость
« Ответ #3 : Января 16, 2011, 10:23 »

Каюсь не заметил, но никто не запрещает сделать копию, изменить ее и передать в метод родителя Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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