簡體   English   中英

如何從 Qt 上的標題(水平/垂直)QTableWidget 更改背景顏色?

[英]How to change the background color from the header(horizontal / vertical) QTableWidget on Qt?

我想知道如何從Qt上的對象QTableWidget更改標題(水平/垂直)的背景顏色。

我已經知道如何一起更改所有標題,使用:

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

但我需要單獨更改這些項目。 顯然,如果這是可能的。

至少有兩種方法可以解決這個問題。 很簡單的一個:

只需使用setHeaderData()並為特定部分設置特定顏色。

QTableView *tview = new QTableView;

QStandardItemModel *md = new QStandardItemModel(4, 4);
for (int row = 0; row < 4; ++row) {
    for (int column = 0; column < 4; ++column) {
        QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
        md->setItem(row, column, item);
    }
}
tview->setModel(md);
tview->model()->setHeaderData(0,Qt::Horizontal,QBrush(QColor("red")),Qt::BackgroundRole);
tview->show();

但不幸的是,它不適用於某些系統... Qt 使用平台樣式。 例如,我的 Windows 不允許更改標題的顏色。 所以這段代碼在我的機器上不起作用。 幸運的是,可以通過更改全局樣式輕松解決。 所以下一個代碼有效:

//... same code ...
tview->show();
QApplication::setStyle(QStyleFactory::create("Fusion"));

如果您不想更改樣式,則應創建自己的HeaderView 可能與此處類似。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM