我一直在寻找关于 Qt 小部件样式表的详细档案 - 特别是 QTableView 小部件。以下是我发现的一些有用(尽管不完整)的资源:
-
我希望蓝色单元格与粉红色轮廓单元格的样式相匹配。
QTableView 小部件有哪些选项?我尝试过 QTableView::rows、QTableView::selection 和许多其他方法,但都没有成功。
uj5u.com热心网友回复:
处理 QSS(Qt 样式表)时要考虑的一个重要方面是,在复杂小部件上设定任何属性时,必须设定所有其他基本属性。
该档案清楚地说明了“常见”小部件(如 QComboBox 或 QScrollBar),但没有说明更多有问题的小部件的属性,如 QHeaderView(它是负责显示行或列的部分标题的小部件)。
最重要的是,必须同时设定严格相关的属性,如
width
orheight
(并非所有小部件都支持) 。如果要为样式表中的标题部分设定特定高度,则还必须设定宽度。
QHeaderView::section { background-color: rgb(71, 153, 176); color: white; height: 35px; width: 150px; font: 14px; }
不幸的是,使用 QSS 设定大小有两个缺点:
- 大小是固定的,基于“像素”大小;
- 文本省略被自动禁用(至少使用 QHeaderView 和普通样式);
这给我们带来了一个重要的方面:样式表必须小心使用(并且意识到这一点的唯一方法是经验和研究源代码)。几乎总是不鼓励在样式表中设定显式大小,尤其是当这些大小处理文本显示时。如果要为标题设定默认尺寸,则应使用
setDefaultSectionSize()
。
最后,即使问题已由 OP 解决,我也会添加以下内容以清楚起见。
项目视图的选择颜色可以通过两种不同的方式设定:设定
::item
伪选择器颜色:QTableView::item:selected { background-color: rgb(242, 128, 133); }
以上将设定项目的背景并完全覆写样式绘制行为(取决于样式),包括基于调色板的任何进一步的“花式”绘制。简而言之,它可能是纯背景色。
设定项目视图选择器和
selection-background-color
属性:QTableView { ... selection-background-color: rgb(242, 128, 133); }
以上将设定表格
Highlight
调色板角色,然后将恢复为默认样式绘画,提供该样式使用的任何“花式”绘画。
0 评论