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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Цвет заголовков в модели [РЕШЕНО]  (Прочитано 6872 раз)
Danila_Bagrofff
Гость
« : Март 05, 2012, 14:42 »

Есть модель и таблица, надо разными цветами подсвечивать номера колонок, строк.

Делаю простейший пример:
Код:
QVariant DataModel::headerData( int section, Qt::Orientation orientation, int role) const
{
    if (role == Qt::BackgroundColorRole)
    {
        return QBrush(QColor(200, 200, 200));
    }

    if (role == Qt::ForegroundRole)
    {
        return QBrush(QColor(200, 200, 200));
    }
}

При этом цвет текста он меняет, а вот цвет заливки у текста почему-то нет.
Для data() и собственно не для закголовка все действует. А вот для заголовков - почему-то нет...

Такое тоже не помогло...
Код:
qTblVwData->verticalHeader()->setBackgroundRole(QPalette::Window);
qTblVwData->verticalHeader()->setPalette(QPalette(QColor(200, 200, 200)));

Чего может не хватать хидеру?
« Последнее редактирование: Март 05, 2012, 15:15 от Danila_Bagrofff » Записан
Bepec
Гость
« Ответ #1 : Март 05, 2012, 14:45 »

Я использовал StyleSheet
Код:
// - устанавливает бекграунд для зарезервированных полей (неиспользованное пространство)
QHeaderView
{
border-color: rgb(149, 135, 255);
background-color: #D3D3D3;
}
// - устанавливает бекграунд для секций (цифры, заголовки)
QHeaderView::section
{
background-color: #D3D3D3;
}
Записан
Danila_Bagrofff
Гость
« Ответ #2 : Март 05, 2012, 14:47 »

А че без стилШита никуда?)

Почему данные из модели не работают??

Код:
qTblVwData->verticalHeader()->setStyleSheet("background-color: #D3D3D3");
Не помогло - закрашивает только пустые =(
А мне нужно с данными DisplayRole разным цветом красить =(
« Последнее редактирование: Март 05, 2012, 14:50 от Danila_Bagrofff » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Март 05, 2012, 15:01 »

Чего может не хватать хидеру?
Скорее всего не получится, т.к. при отрисовке ячеек заголовков используются нативные темы, которые не поддерживают заливку произвольного фона ячеек.
Записан

Qt 5.11/4.8.7 (X11/Win)
Danila_Bagrofff
Гость
« Ответ #4 : Март 05, 2012, 15:08 »

Что же никак не обойти? Только добавлять колонку заголовков в модель данных? И подсвечивать ее как заголовок??
Бррр...
Как-то отключить эти темы можно?
Записан
Bepec
Гость
« Ответ #5 : Март 05, 2012, 15:10 »

// - устанавливает бекграунд для зарезервированных полей (неиспользованное пространство)
QHeaderView
{
border-color: rgb(149, 135, 255);
background-color: #D3D3D3;
}
// - устанавливает бекграунд для секций (цифры, заголовки)
QHeaderView::section
{
background-color: #D3D3D3;
}


Стайлшит надо устанавливать на view.
Записан
Danila_Bagrofff
Гость
« Ответ #6 : Март 05, 2012, 15:15 »

О, запостил именно для section и помогло!

Код:
qTblVwData->verticalHeader()->setStyleSheet("QHeaderView::section{background-color: #D3D3D3;}");

Интересно, конечно, отображает =) Ну да Бог с ним!

Спасибо ;-)
« Последнее редактирование: Март 05, 2012, 15:17 от Danila_Bagrofff » Записан
Bepec
Гость
« Ответ #7 : Март 05, 2012, 15:22 »

Сам с ними мучаюсь.  Показает язык
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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