Проблема с цветами раздела 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();
}
Это должно помочь.