QTableView/QTableWidget 网格样式表 - 网格线宽
Posted
技术标签:
【中文标题】QTableView/QTableWidget 网格样式表 - 网格线宽【英文标题】:QTableView/QTableWidget grid stylesheet - grid line width 【发布时间】: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 添加 cssborder-collapse: collapse;
【参考方案1】:
诀窍是在女巫border-left
、border-right
、border-top
和border-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;
出现了一个技巧。以上是关于QTableView/QTableWidget 网格样式表 - 网格线宽的主要内容,如果未能解决你的问题,请参考以下文章
QTableView/QTableWidget 中的类似 Ktorrent 的小部件
QTableView/QTableWidget 网格样式表 - 网格线宽
在 QTableView/QTableWidget 中:如何使交替行完全垂直填充表格?