Qt QScrollBar 改变背景颜色
Posted
技术标签:
【中文标题】Qt QScrollBar 改变背景颜色【英文标题】:Qt QScrollBar change background Color 【发布时间】:2020-02-08 10:35:18 【问题描述】:我在 Qt Designer 上工作,我想编辑 QScrollBar 的背景颜色(如果可能是渐变),但我不知道如何正确地做到这一点。
当我添加任何背景颜色时,整个小部件会均匀地改变颜色并变为纯色。
我试图仅更改栏和箭头按钮后面区域的颜色。
【问题讨论】:
gyazo.com/cddd719167c585fcc8c746017c8b418a 【参考方案1】:不幸的是,对于许多复杂的小部件,您不能在没有所有必要实现的情况下仅使用样式表更改属性。
QScrollBar 就是其中之一,为了通过样式表实现后台自定义,至少所有也必须提供以下内容:
整体背景颜色 添加/子页面颜色 手柄颜色 添加/子行(“箭头按钮”)颜色为了使小部件在视觉上更具响应性,还应提供边框(带有用于按下/启用/悬停状态的伪状态),并且通常建议为箭头按钮添加图像(可以通过 css 边框技巧获得小箭头,不过)。
起点是官方的 Qt 样式表示例文档,其中有一个customizing QScrollBar 部分。
请注意,使用QProxyStyle 不是一个选项,因为许多样式以不同的方式绘制滚动条,有时它们甚至会忽略一些“官方”样式函数,例如 drawControl,因为它们会在 drawComplexControl 中处理整个绘制,使用私有函数。
【讨论】:
以上是关于Qt QScrollBar 改变背景颜色的主要内容,如果未能解决你的问题,请参考以下文章
QT动态改变控件背景颜色:用QPalette得到一个颜色m_penColor,如何让一个pushb
Qt5:如何改变表格中一行的背景颜色,使其在排序时自动移动?