QTableView / QTableWidget网格样式表 - 网格线宽

时间:2014-10-02 13:54:28

标签: c++ css qt qt4

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

问题是,QHeaderView的样式很难。我总是得到2px网格宽度或没有网格。

我有一个带有一个QTableWIdget

的窗口

QTableWidget

和asociated styleSheet

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版。

2 个答案:

答案 0 :(得分:4)

border-style: none;QHeaderView::sectionborder-leftborder-right开始后border-top中的 border-bottom 工作。 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;
}

答案 1 :(得分:2)

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

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

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

http://pastebin.com/svReqHr3

HowTo draw correct CSS border in header?