最近做项目用到了QTableWidget,基于QWidget做的,QTableWidget的背景色,背景图片,文字颜色都可以改变,表头的字体颜色也可以改变,但是表头的颜色不能改变,在论坛看了很多高手的回答,无论是获取表头对象设置还是使用样式表设置都没效果。本来以为是不是代码无效,就做了三个demo来验证,分别是基于QMainWindow,QDialog,QWidget.只有QMainWindow中的代码实现了效果,其他两个都无效,求解啊?
QTableWidgetItem *columnHeaderItem0 = ui->tableWidget->horizontalHeaderItem(i); //获得水平方向表头的Item对象
columnHeaderItem0->setFont(QFont("Helvetica")); //设置字体
columnHeaderItem0->setBackgroundColor(QColor(13, 13, 13)); //设置单元格背景颜色
columnHeaderItem0->setTextColor(QColor(233, 233, 233)); //设置文字颜色
ui->tableWidget->horizontalHeader()->setStyleSheet("border:2px groove gray;border-radius:10px;padding:2px 4px;background-color: rgb(170, 170, 255);font: 20pt '华文隶书';");
[img=http://www.qtcn.org/bbs/attachment/Mon_1207/17_133462_35dd893c7f681d8.jpg?14][/img]
[img=http://www.qtcn.org/bbs/attachment/Mon_1207/17_133462_6d9a8d9eadbfa3b.jpg?13][/img]
------解决思路----------------------
sorry 我把形式写错啦,那个引号应该在外面
ui->tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{border:2px groove gray;border-radius:10px;padding:2px 4px;background-color: rgb(170, 170, 255);font: 20pt '华文隶书'}");
类似这样的格式
setStyleSheet( "QHeaderView::section{background-color:transparent}" );