How to change the header background color of a QTableView
-
20-06-2021 - |
Question
The following is what I've currently tried. The header text changes color correctly but the background will not change from the default.
template<typename T>
inline QVariant TableModel<T>::headerData(int section, Qt::Orientation orientation, int role) const
{
//...
else if(role == Qt::BackgroundRole) {
return QBrush(m_display.headerBackground);
}
//...
}
How can I set the background color?
Solution
You can set the style sheet on the QTableView
ui->tableView->setStyleSheet("QHeaderView::section { background-color:red }");
for more info see http://doc.qt.io/qt-4.8/stylesheet-examples.html
OTHER TIPS
Here's an alternative solution.
MyTableView::MyTableView( QWidget* parent ) : QTableView( parent )
{
...
// Make a copy of the current header palette.
QPalette palette = horizontalHeader()->palette();
// Set the normal/active, background color
// QPalette::Background is obsolete, use QPalette::Window
palette.setColor( QPalette::Normal, QPalette::Window, Qt::red );
// Set the palette on the header.
horizontalHeader()->setPalette( palette );
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow