14

以下は私が現在試したことです。ヘッダーテキストの色は正しく変更されますが、背景はデフォルトから変更されません。

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

背景色を設定するにはどうすればよいですか?

4

2 に答える 2

28

QTableViewでスタイルシートを設定できます

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

詳細については、http://doc.qt.io/qt-4.8/stylesheet-examples.htmlを参照してください。

于 2012-07-12T16:29:08.673 に答える
2

別の解決策は次のとおりです。

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 );
}
于 2012-07-12T16:47:03.743 に答える