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