当前位置: 代码迷 >> QT开发 >> QTableWidget修改表头颜色的代码为啥只在QMainWindow中有效
  详细解决方案

QTableWidget修改表头颜色的代码为啥只在QMainWindow中有效

热度:156   发布时间:2016-04-25 03:05:59.0
QTableWidget修改表头颜色的代码为什么只在QMainWindow中有效?
  最近做项目用到了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]

------解决思路----------------------
引用:
引用:
引用
ui->tableWidget->horizontalHeader()->setStyleSheet("border:2px groove gray;border-radius:10px;padding:2px 4px;background-color: rgb(170, 170, 255);font: 20pt '华文隶书';");

改为:
ui->ta……


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}" );
  相关解决方案