下面的程式,除了設定表頭項的背景色(backgroud)不起作用,其他一切正常。
也曾經嘗試用setBackgroundColor(),但都對表頭項的背景色不起作用。
奇怪的是對表頭項的前景色setForeground卻沒問題。而且對一般表項一切OK!
如何解決設定表頭項的背景色?
謝謝!
#include <QApplication>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QHeaderView>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTableWidget *table = new QTableWidget;
table->setColumnCount(4);
table->setRowCount(2);
QStringList header;
header<<"1"<<"2"<<"3"<<"4";
table->setHorizontalHeaderLabels(header);
for(int i=0; i<4; i++)
{
QString strtmp;
QTableWidgetItem *columnHeaderItem = table->horizontalHeaderItem(i);
columnHeaderItem->setBackground(QBrush(QColor(0,255,0)));//設定表頭項的背景色不起作用,為什么???
columnHeaderItem->setForeground(QBrush(QColor(0,0,255)));///////設定表頭項的前景色OK!
columnHeaderItem->setText(strtmp.setNum(i));
table->setHorizontalHeaderItem(i,columnHeaderItem);
QTableWidgetItem *columnHeaderItem1 = new QTableWidgetItem;
columnHeaderItem1->setBackground(QBrush(QColor(0,255,0)));/////設定表項的背景色OK!
columnHeaderItem1->setForeground(QBrush(QColor(255,0,0)));
columnHeaderItem1->setText(strtmp.setNum(i+4));
table->setItem(0,i,columnHeaderItem1);
QTableWidgetItem *columnHeaderItem2 = new QTableWidgetItem;
columnHeaderItem2->setBackground(QBrush(QColor(255,255,0)));///////////////設定表項的背景色OK!
columnHeaderItem2->setForeground(QBrush(QColor(0,0,255)));
columnHeaderItem2->setText(strtmp.setNum(i+8));
table->setItem(1,i,columnHeaderItem2);
}
table->show();
return a.exec();
}
uj5u.com熱心網友回復:
請各位大神看看,這到底是什么原因。謝謝
uj5u.com熱心網友回復:
用 stylesheet試試,百度stylesheetuj5u.com熱心網友回復:
ui->tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background:skyblue;}");uj5u.com熱心網友回復:
stylesheet比用直接呼叫函式更強大有效uj5u.com熱心網友回復:
同求,stylesheet不能設定指定的表頭。uj5u.com熱心網友回復:
self.tableWidget.horizontalHeader().setStyleSheet("QHeaderView::section{background:skyblue; \n""font: 12pt \"等線\";}") # 設定表頭背景色及字體顏色
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/29021.html
標籤:Qt
下一篇:菜鳥在線求學
