使用上述代码对表头操作后发现tablewidget的左上角始终会有一块区域,无法操作,这个时候只需要将默认的垂直表头设置为不可见,这样左上角就不会有行和列的交汇,代码改进如下
ui->userTableWidget->setStyleSheet("background-color:transparent;");
ui->userTableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background-color:transparent;font:13pt '宋体';color: white;}");
ui->userTableWidget->verticalHeader()->setVisible(false);
如下是对tabwidget表头的设置。background-color是对表头背景颜色的设置。font是对字体大小,字体颜色,字体格式设置。
ui.tableWidget_grid->horizontalHeader()->setStyleSheet("QHeaderView::section{background-color:rgb(40,143,218);font:13pt '宋体';col
font-size: 19px; /*11榜*/
border: 1px solid rgb(255, 255, 255);
/* border-bottom: 2px solid rgb(35, 100, 224); 下边框深蓝色*/
background: rgb(100, 188, 238...
2). 必须在ui->tableWidget->horizontalHeader()样式设置之后设置,因为ui->tableWidget->horizontalHeader()样式的设置会使QTableCornerButton控件的样式不生效;水平和垂直表头样式设置时,需要先设定水平方向的表头样式,再通过QTableWidget控件设置垂直及QTableCornerButton的样式才能生效。1). 必须通过ui->tableWidget设置样式;以上遇到问题,记录下解决过程。
笔者希望提供给用户自定义修改表头背景颜色的机会,但是查找多个资料都表示,Qt无法通过下述方式对已设置过表头颜色的表头进行颜色更换;还有表明无法对表头背景颜色进行更换的,如下:
但是经过无数试错,我发现,其实表头背景可以实时修改,下面开始讲述。
正确方法:
已知Qt提供了由样式表来设置表头背景、字体样式等方法,具体代码如下:
ui->tableWidget-&...
QTableWidget 设置表头颜色
setStyleSheet( "QHeaderView::section {background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 #00007f, stop: 0.5 #00007f,stop: 0.6 #00007f, stop:1 #00007f);color: white;}");
setStyleSheet(
"QTableWidget{ color:black
TabWidget::TabWidget(QWidget *parent): QTabWidget(parent),mousePressFlag(false)
bar=tabBar();
QPalette palette;
bar->installEventFilter(this);
palette.setColor(QPalette::Active,QPalette::Button ,QColor(0,0,255));
bar->setPalette(palette);