如何更改QTableWidget竖直表头的背景颜色?

6

我想改变QTableWidget的颜色。我已经接近我喜欢的结果,但是垂直标题中的两个区域仍然是白色:

enter image description here

在撰写此帖子之前,我确实设法着色了左上角,但未能着色其他区域。这里是我正在使用的样式表:

QTableCornerButton::section {
    background-color: #8b8d8e;
}

QHeaderView::section {
    color: white;
    background-color: #747678;
    gridline-color: #747678;
}
2个回答

3

最终我自己找到了答案:

/*The top-left area is actually a button:*/
QTableCornerButton::section {
    background-color: #8b8d8e;
}

/*The lower part of the vertical header:*/
QHeaderView {
    background-color: #8b8d8e;
}

我最初发布的 CSS(QHeaderView::section)仅涉及标题条目,而不是标题本身。


0

QTableCornerButtonQTableWidget的一个私有类,您可以使用函数QTableView::setCornerButtonEnabled启用和禁用按钮,但是,如果禁用按钮,那个角落的抽象按钮将具有白色背景。

它与QAbstractScrollArea::cornerWidget不同,您可以使用setCornerWidget设置另一个小部件,但它不会覆盖原来的按钮。

即使这个类是私有的,也可以通过以下代码访问:

QAbstractButton* qCorner = this->findChild<QAbstractButton *>();

其中this是QTableWidget的包装类,或者使用yourTableObj代替this。

然后您可以自定义样式:

qCorner->setStyleSheet("QTableCornerButton::section {"
                       "border: 0px;"
                       "background-color: " + QColor(Qt::black).name() +
                       ";}");

当你不想在整个表格上使用样式表时,这是非常有用的,因为你可能正在使用一些项目代理或者使用 QPalette


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接