Hor*_*ter 3 qt qscrollarea qt5.3
在我的 qss 样式表中我定义了背景颜色
#sw_MainMiddle {
background: black;
}
Run Code Online (Sandbox Code Playgroud)
QScrollArea一切都很好,但是当我在小部件中放置滚动条时sw_MainMiddle,背景颜色消失了。显然没有机会直接为 指定背景QScrollArea。下面的代码没有任何效果:
QScrollArea {
background: black;
}
Run Code Online (Sandbox Code Playgroud)
根据这个问题,我使用对象名称选择器将背景颜色重新分配给滚动区域,也没有效果:
#myScrollArea {
background: black;
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么吗?
我想我找到了解决方案:
QAbstractScrollArea #scrollAreaWidgetContents {
background-color: black;
}
Run Code Online (Sandbox Code Playgroud)
scrollAreaWidgetContents滚动区域内的小部件在哪里:

来自QSS 参考页面:
QAbstractScrollArea 的所有派生类,包括 QTextEdit 和 QAbstractItemView(所有项目视图类),都支持使用背景附件的可滚动背景。将背景附件设置为固定会提供不随视口滚动的背景图像。将背景附件设置为滚动,当滚动条移动时滚动背景图像。
有关示例,请参阅自定义 QAbstractScrollArea 。
因此,您无法自定义所有QAbstractScrollArea或所有QScrollArea,只能自定义包含它们的小部件(例如QTextEdit)。这就是为什么QScrollArea { background-color: black; }不起作用。但是,如果您想自定义包含滚动区域的特定小部件,此解决方案应该足够了。