以下是我已经尝试过目前。 头文字正确地改变颜色,但背景不会更改默认。
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);
}
//...
}
如何设置背景颜色?
您可以设置在QTableView中的样式表
ui->tableView->setStyleSheet("QHeaderView::section { background-color:red }");
更多信息请参见http://doc.qt.io/qt-4.8/stylesheet-examples.html
这里有一个替代的解决方案。
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 );
}