QScrollArea清除背景颜色

时间:2014-09-30 20:38:18

标签: qt qscrollarea qt5.3

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

#sw_MainMiddle {
    background: black;
}

一切都很好,但是当我在QScrollArea窗口小部件中放置滚动sw_MainMiddle时,背景颜色消失了。显然,没有机会直接将背景分配给QScrollArea。下面的代码没有效果:

QScrollArea {
    background: black;
}

根据this question我使用对象名称选择器将背景颜色重新分配给滚动区域,也没有效果:

#myScrollArea {
    background: black;
}

我做错了什么?

1 个答案:

答案 0 :(得分:2)

我想我找到了解决方案:

QAbstractScrollArea #scrollAreaWidgetContents {
    background-color: black;
}

其中scrollAreaWidgetContents是滚动区域内的小部件:

enter image description here

来自QSS Reference Page

  

QAbstractScrollArea的所有派生词,包括QTextEdit和   QAbstractItemView(所有项目视图类),支持可滚动   背景使用背景附件。设置   background-attachment to fixed提供了一个背景图像   不要使用视口滚动。将背景附件设置为   滚动,滚动条移动时滚动背景图像。

     

有关示例,请参阅Customizing QAbstractScrollArea

因此,您无法自定义所有QAbstractScrollArea个或所有QScrollArea个,只包含包含它们的小部件(例如QTextEdit)。这就是QScrollArea { background-color: black; }无效的原因。但是,如果要自定义包含滚动区域的特定小部件,则此解决方案应该足够了。