QTableView 的边框和文本 qss 设置

border and text qss settings at QTableView

我正在尝试这样做:

但我在 QTableView:

中设置了样式表
QTableView {
    gridline-color: black;
    background-color: transparent;
    }
QHeaderView {background-color: transparent;

}
QHeaderView::section{
border-style: none;
border-bottom: 1px solid rgb(0,0,0);
background-color: transparent;
margin-bottom:5px;
margin-top:5px;
}
QTableView QTableCornerButton::section {
     bottom-style:none;
     border-bottom: 1px solid rgb(0,0,0);

 }

结果是这样的:

我可以处理未来的尺寸问题,但这里有两个主要问题:

1.Column 边框之间的文本没有任何 space,我做了 margin-top:5px;margin-bottom:5px; 但它改变了所有 QHeaderView 不仅 QHeaderView的文本。 (解决方案是使用填充而不是边距

2.Every 行有右、左甚至上边框。我不要那个。

我试过这个:

QTableView QTableCornerButton::section {
     border-style:none;
     border-bottom: 1px solid rgb(0,0,0);

 }

不幸的是 QTableCornerButton:section 有问题,它不起作用...

感谢您的帮助

注意:我还没有验证,这些只是尝试的建议,如果需要请上传输出

1 - "it changed for all QHeaderView not only QHeaderView's Text" 是什么意思?

也许您希望只为标题视图的内容(文本)设置边距:在这种情况下使用 padding 而不是边距。

QHeaderView::section{
/* your style */
padding-bottom:5px;
padding-top:5px;
}

2 - 每行都有右、左甚至上边框。我不想那样。

QTableView {
    /* sone additional style */
    gridline-color: cyan
    background-color: cyan
}

QTableView::item
{
    border-style: none;
    border-bottom: 1px solid rgb(0,0,0);
}

我会尝试使用 border-style(设置为 none),就像您在 QHeaderView 的样式中所做的那样。

编辑:您当然必须通过代码禁用 QTableView 的 showgrid 选项,使其成为一个有效的解决方案

tableView.setShowGrid(false);