我在使QScrollArea
的内容无法绘制背景时遇到问题。
所以这是最初的图片,当我没有应用样式表时: 你可以看到,滚动区域的内容比整个框架更暗。
我找到了可以应用于滚动区域的样式表,因此背景是透明的。这是我使用的样式表:
QScrollArea { background: transparent; }
QScrollArea > QWidget > QWidget { background: transparent; }
问题是,当我这样做时,scrollarea的滚动条搞砸了:
你知道吗?滚动条现在始终可见,并且丑陋透明。如何使样式表不影响滚动条,同时仍将其应用于QScrollArea
?或者我应该应用哪种不同的样式表?
答案 0 :(得分:2)
尝试为滚动区域视口设置对象名称:
pScrollArea->viewport()->setObjectName("myViewport");
然后使用样式表中的hashtag属性解决它(也可以添加组框,因为我在截图中看到它的方式,你的目标是让它们透明):
QScrollArea, #myViewport, QGroupBox {
background: transparent;
}
答案 1 :(得分:0)
问题是QScrollBar是QWidget的子类,所以只需使用该规则定位视口:
pScrollArea->setStyleSheet("QScrollArea { background: transparent; }");
pScrollArea->viewport()->setStyleSheet(".QWidget { background: transparent; }");
注意QWidget之前的点,以便不针对视口的任何子节点(即任何视口内容是QWidget子类)。