Qt QScrollArea清除背景色

Qt QScrollArea清除背景色,qt,qscrollarea,qt5.3,Qt,Qscrollarea,Qt5.3,在qss样式表中,我定义了背景色 #sw_MainMiddle { background: black; } 一切正常,但当我在sw_main middle小部件中放置一个滚动条QScrollArea时,背景色消失了。显然,没有机会将背景直接分配给QScrollArea。以下代码无效: QScrollArea { background: black; } 据了解,我已使用对象名称选择器将背景色重新分配给滚动区域,但也没有效果: #myScrollArea { back

在qss样式表中,我定义了背景色

#sw_MainMiddle {
    background: black;
}
一切正常,但当我在
sw_main middle
小部件中放置一个滚动条
QScrollArea
时,背景色消失了。显然,没有机会将背景直接分配给
QScrollArea
。以下代码无效:

QScrollArea {
    background: black;
}
据了解,我已使用对象名称选择器将背景色重新分配给滚动区域,但也没有效果:

#myScrollArea {
    background: black;
}

我做错了什么?

我想我找到了解决办法:

QAbstractScrollArea #scrollAreaWidgetContents {
    background-color: black;
}
其中
scrollAreaWidgetContents
是滚动区域内的小部件:

从:

QAbstractScrollArea的所有衍生产品,包括QTextEdit,以及 QAbstractItemView(所有项目视图类),支持可滚动 背景使用背景附件。设定 固定的背景附件提供了一个背景图像 不随视口滚动。将背景附件设置为 滚动,滚动条移动时滚动背景图像

有关示例,请参见

因此,您不能自定义所有
QAbstractScrollArea
s或所有
QScrollArea
s,只能自定义包含它们的小部件(例如
QTextEdit
)。这就是为什么
QScrollArea{背景色:黑色;}
不起作用的原因。但是,如果您想要自定义包含滚动区域的特定小部件,这个解决方案就足够了