【问题标题】:QHeaderView has no horizontal lines in Windows 10QHeaderView 在 Windows 10 中没有水平线
【发布时间】:2015-10-06 04:41:24
【问题描述】:

QTableWidget 标头在 Windows 10 中没有水平线。我该如何解决?

【问题讨论】:

  • @Ankur 的样式表解决方案有效,但在这种情况下,Windows 10 样式消失了。还有其他解决方案吗?

标签: qt windows-10 qtablewidget qheaderview


【解决方案1】:

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

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;} 添加到您的样式表中。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    在表格小部件中设置此样式表。

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

    【讨论】:

    • 它有效。但某处宽度为 1px,某处为 2px。我可以制作相同的宽度吗? i.imgur.com/GLiE9TC.png?1
    • 试试这个:QTableWidget ::section { border-top: 0px solid #161618;左边框:0px 实心 #161618;右边框:1px 实心 #161618;边框底部:1px 实心 #161618; }
    • 谢谢!它比没有线条要好得多。现在我将尝试找到保持 Windows 10 标题样式但使用水平线的解决方案。
    • @Ankur 也许你知道如何在此处添加行i.imgur.com/WdAX4Oa.png?1
    • @Ufx ,试试这个 QTableView#tableWidget QHeaderView { border-top: 0px solid #161618;边框底部:1px 实心 #161618; }
    猜你喜欢
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    相关资源
    最近更新 更多