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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Model/View] Как выделить жирным некоторые элементы...  (Прочитано 4272 раз)
Lion
Гость
« : Февраль 27, 2007, 22:27 »

Как выделить жирным некоторые элементы на уровне модели, если не известно какой шрифт будет использоваться на уровне представления? Проще говоря, надо к Qt::FontRole элемента добавить bold, но при этом выбор шрифта (названия, размера) оставить за QTreeView (предположим есть несколько представлений одной модели с разными шрифтами).
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Февраль 28, 2007, 01:20 »

а почему бы этого не делать в делегате? Спросить про роль фонта из модели, если болд - то делать фонт жирным...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
vregess
Гость
« Ответ #2 : Февраль 28, 2007, 08:10 »

Код:

void Yourclass::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
  QStyleOptionViewItem opt=option;
 
  if(твое условие){
    ....
    opt.font.setBold(true);
    ....
  }
  ...

  QItemDelegate::paint(painter,opt,index);

  ...
}
Записан
Lion
Гость
« Ответ #3 : Февраль 28, 2007, 10:14 »

В моем случае делегат использовать не получится, у меня элемент может быть добавлен плагином и только он знает по какому условию делать элемент жирным.
Записан
vregess
Гость
« Ответ #4 : Февраль 28, 2007, 14:03 »

Цитата: "Lion"
В моем случае делегат использовать не получится, у меня элемент может быть добавлен плагином и только он знает по какому условию делать элемент жирным.


Можно из плагина возвращать класс-делегат и его использовать в твоем View-классе.

Делаешь универсального делегата, в котором вызываешь специфические делегаты. Такой делегат описывается в доке по адресу http://www.ics.com/developers/papers/  (адрес любезно подкинул vipet в одной теме). Посмотри, если устроит.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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