我四处寻找有关 Qt 小部件样式表的详细文档 - 特别是 QTableView 小部件。以下是我发现的一些有用的(尽管不完整)资源:
我只是想获取 QTableView 样式表选项的详细(完整)列表。该文档在哪里?我必须从网络上获取一些信息来拼凑出完整的样式表,这似乎很奇怪。
这是我现在正在使用的样式表的示例:
QTableView {
color: black;
gridline-color: black;
border-color: rgb(242, 128, 133);
font: 10px;
}
QHeaderView::section {
background-color: rgb(71, 153, 176);
color: white;
height: 35px;
font: 14px;
}
QTableView::item:focus{
border: 2px solid rgb(242, 128, 133);
background-color: rgb(255, 254, 229);
}
QScrollBar:vertical {
background: rgb(188, 224, 235);
}
QScrollBar::handle:vertical {
background: rgb(71, 153, 176);
}
QScrollBar:horizontal {
background: rgb(188, 224, 235);
}
QScrollBar::handle:horizontal {
background: rgb(71, 153, 176);
}
这是我用样式表仍然无法完成的:
在这里您可以看到在组中选择时的单元格行为:
我希望蓝色单元格与粉红色轮廓单元格的样式相匹配。
QTableView 小部件有哪些选项?我尝试过 QTableView::rows、QTableView::selection 和许多其他方法,但都没有成功。
处理 QSS(Qt 样式表)时要考虑的一个重要方面是,在复杂小部件上设置 any 属性时,必须设置所有其他基本属性。
文档对“常见”小部件(如 QComboBox 或 QScrollBar)很清楚,但对 QHeaderView(负责显示行或列的title 部分的小部件)等问题较多的小部件的属性则不清楚。
最重要的是,必须设置严格相关属性,如width
或
height
(所有小部件不支持)。两者都必须设置。 如果您想为样式表中的标题部分设置特定高度,则
必须也设置宽度。
QHeaderView::section {
background-color: rgb(71, 153, 176);
color: white;
height: 35px;
width: 150px;
font: 14px;
}
注意:理论上字体大小应以磅为单位设置,因此请考虑更改为font: 14pt
。尽管如此,根据操作系统和配置(特别是考虑自定义字体缩放设置),这可能会产生不同的结果。不幸的是,使用 QSS 设置大小有两个缺点:
必须谨慎使用(意识到这一点的唯一方法是经验和研究源代码)。几乎总是不鼓励在样式表中设置明确的尺寸,特别是当这些尺寸涉及文本显示时。如果您想为标题设置默认尺寸,则应使用 setDefaultSectionSize()
项目视图的选择颜色可以通过两种不同的方式设置:
::item
伪选择器颜色:
QTableView::item:selected {
background-color: rgb(242, 128, 133);
}
上面将设置项目的背景并完全覆盖样式绘画行为(取决于样式),包括基于调色板的任何进一步的“花式”绘画。简而言之,它可能是一个plain背景色。
selection-background-color
属性:
QTableView {
...
selection-background-color: rgb(242, 128, 133);
}
上面将设置表格Highlight
调色板角色,然后它将恢复为默认样式绘画,提供该样式使用的任何“花式”绘画。
参考,有时它们通过使用自定义(通常基于像素图)绘画完全忽略它们。如上所述,selection-background-color
方法仍然在很大程度上依赖于样式,这意味着绘画将部分(或完全)被样式覆盖,可能会忽略或更改所选颜色。如果选择颜色比应用程序/系统样式一致性更重要,则应使用
::item:selected
选择器。