这个问题与
我之所以这么问,是因为我相信SO社区可能有办法解决这个问题。
因此,我喜欢将ScrollArea的背景色设置为透明或自定义背景图像,因为它将包含一些横幅。我已经在Qt (Designer)中运行了它!:-):
但是,当将应用程序部署到模拟器上时,它将不能工作,它将保持灰色、深灰色:
这是我的布局树:
下面是我使用的样式表(附加&设置为MainWindow):
QMainWindow {
background: transparent url(:/ui/designs/images_from_android/bg_plain_empty.png) top left;
}
QWidget#centralWidget {
background-color: transparent;
}
QPushButton {
color: red;
border: 1px solid green;
}
QFrame#top_header {
background: transparent url(:/ui/designs/images_from_android/bg_title_bar_landscape.png) top left repeat-x;
}
QWidget#top_banner_scroll1,
QWidget#top_banner_scroll2 {
background: transparent url(:/ui/designs/images_from_android/stripe_bg.png) top left repeat-x;
}
这真是令人费解。当Qt设计师向我展示正确的设计时..。
发布于 2011-03-08 09:15:05
你能试试scrollArea.setStyleSheet("background-color:transparent;");
吗?它对我有用。
发布于 2013-05-10 12:48:36
使用样式表
QScrollArea { background: transparent; }
QScrollArea > QWidget > QWidget { background: transparent; }
QScrollArea > QWidget > QScrollBar { background: palette(base); }
要理解这一点,可以使用类似但简化的布局:
scrollarea QScrollArea
+ scrollareaContent QWidget
+ label QLabel
有趣的是,有两个具有非透明背景的小部件。第一个是scrollarea本身(用样式表的第一行变得透明)。
另一个(我没想到的)是scrollareaContent,它使用第二行进行处理。在那里,第一个QWidget是不能直接访问的QScrollArea的私有视图。另一个是scrollareaContent。这种方法应该在不影响任何其他小部件的情况下使所有QScrollAreas透明。
更新:我在样式表中添加了第三行,防止滚动条变得透明,因为它们也是QScrollArea以下的两个级别的QWidgets。
发布于 2014-03-14 11:09:59
使用以下样式表,我能够使滚动区透明,同时保持滚动条的默认背景色:
scrollArea.setStyleSheet("QScrollArea {background-color:transparent;}");
scrollAreaContents.setStyleSheet("background-color:transparent;");
https://stackoverflow.com/questions/4825976
复制相似问题