【问题标题】:QTableView/QTableWidget grid stylesheet - grid line widthQTableView/QTableWidget 网格样式表 - 网格线宽
【发布时间】:2014-10-02 13:54:28
【问题描述】:

我想在 Qt 中以特定样式显示表格。我想绘制所有具有相同颜色和相同宽度的网格线。

问题是,很难设置QHeaderView 的样式。一直以来,我得到 2px 网格宽度或根本没有网格。

我有一个 QTableWIdget 的以下窗口

和相关的样式表

QWidget {
    background-color: #333333;
    color: #fffff8;
}

QHeaderView::section {
    background-color: #646464;
    padding: 4px;
    border: 1px solid #fffff8;
    font-size: 14pt;
}

QTableWidget {
    gridline-color: #fffff8;
    font-size: 12pt;
}

QTableWidget QTableCornerButton::section {
    background-color: #646464;
    border: 1px solid #fffff8;
}

有什么技巧可以让所有网格线的宽度都为 1px?我使用的是 4.8.5,无法升级到 5.x 版。

【问题讨论】:

  • 默认情况下,表格显示所有边框分开,所以你会得到 2px 的边框而不是一个。您可以尝试为 QWidget 添加 css border-collapse: collapse;

标签: c++ css qt qt4


【解决方案1】:

诀窍是在女巫border-leftborder-rightborder-topborder-bottom 开始工作之后,在QHeaderView::section 中的border-style: none;QHeaderView::section 的正确样式应该是

QHeaderView::section {
    background-color: #646464;
    padding: 4px;
    font-size: 14pt;
    border-style: none;
    border-bottom: 1px solid #fffff8;
    border-right: 1px solid #fffff8;
}

QHeaderView::section:horizontal
{
    border-top: 1px solid #fffff8;
}

QHeaderView::section:vertical
{
    border-left: 1px solid #fffff8;
}

【讨论】:

    【解决方案2】:

    我认为你所做的是为部分单元格添加了额外的边框,部分属性应该是这样的(虽然我没有尝试这个解决方案)

    QHeaderView::section {
        background-color: #646464;
        padding: 4px;
        border: 0px;
        font-size: 14pt;
    }
    

    有关如何设置标题样式的详细信息,请参阅:

    http://pastebin.com/svReqHr3

    HowTo draw correct CSS border in header?

    【讨论】:

    • 这不是一个解决方案,但感谢您的链接。在女巫border-left 开始工作后,border-style: none; 出现了一个技巧。
    猜你喜欢
    • 1970-01-01
    • 2016-12-03
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    • 2014-03-28
    • 1970-01-01
    相关资源
    最近更新 更多