2012-07-12 130 views
5

以下は私が現在試みてきたものです。ヘッダーテキストは正しく色が変わりますが、背景はデフォルトから変更されません。QTableViewのヘッダーの背景色を変更する方法

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); 
    } 
    //... 
} 

背景色はどのように設定できますか?

+0

この値は定数ですか?モデルのインスタンスでこの関数が呼び出されるたびに同じブラシが返されますか?そうでない場合は、ヘッダーデータが変更されたことをビューに通知するために関連するシグナルを放出していますか? –

答えて

12

あなたはより多くの情報のためQTableView

ui->tableView->setStyleSheet("QHeaderView::section { background-color:red }"); 

にスタイルシートを設定することができます。

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); 
} 
関連する問題