Проблема с цветами раздела QHeaderView после выпуска qt (5.11) в linux

После выпуска qt 5.11 цвета раздела QHeaderView перестали отображаться в linux. В windows работает корректно. Кто-нибудь сталкивался с этой проблемой?

Я использую QTableView с QHeaderView. Могу ли я переопределить функцию paintSection и сделать что-нибудь, чтобы исправить эту проблему?

1 ответ

Если вы используете QAbstractTableModel для тебя QTableView - попробуйте переопределить

QVariant headerData( 
        int _section
    ,   Qt::Orientation _orientation
    ,   int _role /*= Qt::DisplayRole */ 
) const override;

Если вы это сделаете, вы сможете записать в тело метода механизм рисования фона в нужный вам цвет. Что-то вроде этого:

QVariant headerData(
        int _section
    ,   Qt::Orientation _orientation
    ,   int _role
) const
{
    if( _role == Qt::DisplayRole )
    {
        if( _orientation == Qt::Horizontal )
        {
            // TODO: Return there your header value.
        }
    }
    else if( _role == Qt::BackgroundRole )
    {
        if( _orientation == Qt::Horizontal )
        {
            return QBrush( QColor( Qt::grey ) );
        }
    }

    return QVariant();
}

Это должно помочь.

Другие вопросы по тегам