QHeaderView在Windows 10中没有水平线

时间:2015-10-06 04:41:25

标签: qt windows-10 qtablewidget qheaderview

enter image description here

在Windows 10中,

QTableWidget标题没有水平线。如何修复它?

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。它可以通过表视图/小部件上的以下样式表来解决:

if(QSysInfo::windowsVersion()==QSysInfo::WV_WINDOWS10){
    setStyleSheet(
        "QHeaderView::section{"
            "border-top:0px solid #D8D8D8;"
            "border-left:0px solid #D8D8D8;"
            "border-right:1px solid #D8D8D8;"
            "border-bottom: 1px solid #D8D8D8;"
            "background-color:white;"
            "padding:4px;"
        "}"
        "QTableCornerButton::section{"
            "border-top:0px solid #D8D8D8;"
            "border-left:0px solid #D8D8D8;"
            "border-right:1px solid #D8D8D8;"
            "border-bottom: 1px solid #D8D8D8;"
            "background-color:white;"
        "}");}

这是C ++代码,但它很容易适应您的需求。

注1:背景颜色和填充是不幸的,但它们是使我们的自定义渲染看起来像默认渲染所必需的。

注意2:边框的颜色是我系统中网格的颜色。我没有使用默认标题的颜色。

注意3:在左上角下方添加缺少的边框需要QTableCornerButton::section部分。如果垂直标题不可见,则缺失的行也是不可见的。

注意4:如果(像我一样)您发现行名称下面的丑陋灰色矩形需要修复,只需将QHeaderView{background-color:white;}添加到样式表中即可。

希望这有帮助。

答案 1 :(得分:1)

在tablewidget中设置此样式表。

QTableWidget ::section {
   border: 1px outset #161618;
}