【问题标题】:QScrollArea clears background colorQScrollArea 清除背景颜色
【发布时间】:2014-09-30 20:38:18
【问题描述】:

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

#sw_MainMiddle {
    background: black;
}

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

QScrollArea {
    background: black;
}

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

#myScrollArea {
    background: black;
}

我做错了什么?

【问题讨论】:

    标签: qt qscrollarea qt5.3


    【解决方案1】:

    我想我找到了解决办法:

    QAbstractScrollArea #scrollAreaWidgetContents {
        background-color: black;
    }
    

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

    来自QSS Reference Page

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

    有关示例,请参阅 Customizing QAbstractScrollArea

    因此您不能自定义所有QAbstractScrollAreas 或所有QScrollAreas,只能自定义包含它们的小部件(例如QTextEdit)。这就是QScrollArea { background-color: black; } 不起作用的原因。但是,如果您想自定义包含滚动区域的特定小部件,此解决方案应该足够了。

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 2011-01-09
      • 2020-12-09
      相关资源
      最近更新 更多