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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Изменить шрифт определенных элементов списка QTreeView  (Прочитано 8504 раз)
wolfut
Гость
« : Июль 05, 2011, 09:51 »

Доброго времени суток.

Как можно изменить шрифт определенных строк в QTreeView в соответствии со значение в модели (QAbstractItemModel). Например если значение "true" - выделить жирным строку.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июль 05, 2011, 09:53 »

Возвращай нужное значения в модели для Qt::FontRole.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
wolfut
Гость
« Ответ #2 : Июль 05, 2011, 10:07 »

Так, немного не понял, вот задам я значение
model->insertRow(0)
model->setData(model->index(0,0), value, Qt::FontRole).....где value - true\false.
.....
Что дальше?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Июль 05, 2011, 10:09 »

А что за модель используешь? Вообще, для Qt::FontRole в value нужно передавать нужный QFont.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
wolfut
Гость
« Ответ #4 : Июль 05, 2011, 10:17 »

Создаю модель:

    modelSms = new QStandardItemModel(0, 4, NULL);
    modelSms->setHeaderData(0, Qt::Horizontal, QObject::tr("Subject"));
    modelSms->setHeaderData(1, Qt::Horizontal, QObject::tr("Sender"));
    modelSms->setHeaderData(2, Qt::Horizontal, QObject::tr("Date"));
    modelSms->setHeaderData(3, Qt::Horizontal, QObject::tr("Idx"));

Заполняю модель, с помощью процедуры:

addM(QAbstractItemModel *model, const QString &name,
             const QString &text, const QDateTime &date, int idx,const QString &text2)
{
    model->insertRow(0);
    model->setData(model->index(0, 0), name);
    model->setData(model->index(0, 0), name, Qt::ToolTipRole);
    model->setData(model->index(0, 1), text);
    model->setData(model->index(0, 1), text2, Qt::ToolTipRole);
    model->setData(model->index(0, 2), date);
    model->setData(model->index(0, 3), idx);

}

Присваиваю модель QTreeView:

 ui->treeView->setModel(modelSms);
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Июль 05, 2011, 10:24 »

Попробуй так:

Код
C++ (Qt)
model->setData(model->index(0, 0), name);
model->setData(model->index(0, 0), name, Qt::ToolTipRole);
QFont font (view->font ());
font.setBold (true);
model->setData(model->index(0, 0), font, Qt::FontRole);
 
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
wolfut
Гость
« Ответ #6 : Июль 05, 2011, 14:52 »

да-да, помогло, спасибо
Записан
kolts
Гость
« Ответ #7 : Август 13, 2015, 13:24 »

Подниму старую тему, правда у меня qtableview. Не могу задать шрифт в определенной ячейке.
QFont font;
font.setStrikeOut(true);
font.setItalic(true);
products->setData(products->index(row,i),font,Qt::FontRole); (возвращает false потому что шрифт не устанавливается)
В чем может быть проблема. Не нравится шрифт или нельзя так назначать. По идее через setData можно устанавливать любые значения для доступных ролей. Пробовал инициализировать шрифт так QFont font = (products->data(products->index(0,0),Qt::FontRole).value<QFont>()) для проверки но все равно не хочет
Записан
Nidxogg
Гость
« Ответ #8 : Август 13, 2015, 15:16 »

Может шрифта в системе нет?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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