如何设置QTreeWidget标头颜色并隐藏分割线?

Posted

技术标签:

【中文标题】如何设置QTreeWidget标头颜色并隐藏分割线?【英文标题】:How to set the QTreeWidget's header color and hide the dividing line? 【发布时间】:2017-12-26 10:48:49 【问题描述】:

我想在使用 QWidget 时更改标题的背景颜色。我尝试了以下方法,但没有奏效:

QTreeWidgetItem * header = ui->treeWidget->headerItem(); 
header->setBackground(0, QBrush(QColor(185,192,201)));
header->setBackgroundColor(0, QColor(185,192,201));

setStyleSheet("QHeaderView::section  background-color:red ");

我也想知道如何隐藏表头的分割线?

【问题讨论】:

【参考方案1】:

我找到了一种改变标题样式的方法,但我不知道为什么我以前的方法不起作用。

QHeaderView::section                           
    color: black;                               
    padding: 2px;                               
    height:20px;                                
    border: 0px solid #567dbc;                  
    border-left:0px;                            
    border-right:0px;                           
    background: #f9f9f9;                        

【讨论】:

【参考方案2】:

你为什么不只使用样式表?

YourQTreeWidget QHeaderView::section 
    background-color: red; // for the bakcground
    border-right: none; // right-border of each section
    border-left: none;  // left border of each section

【讨论】:

我试过了,你的代码不起作用,但是我发现下面的代码很有用。我不知道你的代码为什么不起作用。 QHeaderView::section color: black; padding: 2px; height:20px; border: 0px solid #567dbc; border-left:0px; border-right:0px; background: #f9f9f9; 【参考方案3】:

您可以阅读here(以及您在示例中看到的)setBackgroundColor 不适用于标题项目(我怀疑这是由于标题和行项目之间的差异)。 您应该重新实现QHeaderView 或尝试上述选项。

【讨论】:

以上是关于如何设置QTreeWidget标头颜色并隐藏分割线?的主要内容,如果未能解决你的问题,请参考以下文章

QTreeWidget 交替行颜色设置

qt所有widget都有黑框

如何更改标签颜色并设置 y 轴值 1k 间隔并隐藏 y 轴?

如何将 QTreeWidget 的子项设置为在单击其父项时自动选择并突出显示

如何在网格内容加载时隐藏jqgrid标头?

Swift5 踩过的坑和奇怪的API笔记