Russian Qt Forum

Qt => QSS => Тема начата: Danila_Bagrofff от Март 05, 2012, 14:42



Название: Цвет заголовков в модели [РЕШЕНО]
Отправлено: 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)));

Чего может не хватать хидеру?


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


Название: Re: Цвет заголовков в модели
Отправлено: Danila_Bagrofff от Март 05, 2012, 14:47
А че без стилШита никуда?)

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

Код:
qTblVwData->verticalHeader()->setStyleSheet("background-color: #D3D3D3");
Не помогло - закрашивает только пустые =(
А мне нужно с данными DisplayRole разным цветом красить =(


Название: Re: Цвет заголовков в модели
Отправлено: GreatSnake от Март 05, 2012, 15:01
Чего может не хватать хидеру?
Скорее всего не получится, т.к. при отрисовке ячеек заголовков используются нативные темы, которые не поддерживают заливку произвольного фона ячеек.


Название: Re: Цвет заголовков в модели
Отправлено: Danila_Bagrofff от Март 05, 2012, 15:08
Что же никак не обойти? Только добавлять колонку заголовков в модель данных? И подсвечивать ее как заголовок??
Бррр...
Как-то отключить эти темы можно?


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

Стайлшит надо устанавливать на view.


Название: Re: Цвет заголовков в модели
Отправлено: Danila_Bagrofff от Март 05, 2012, 15:15
О, запостил именно для section и помогло!

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

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

Спасибо ;-)


Название: Re: Цвет заголовков в модели [РЕШЕНО]
Отправлено: Bepec от Март 05, 2012, 15:22
Сам с ними мучаюсь.  :P