我已经创建了一个自定义小部件,并对其应用了以下样式表(通过QtDesigner):
QWidget#MyWidget{
background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0
rgb(200, 200, 200), stop:1 rgb(230, 230, 230))
}
QWidget#MyWidget:hover{
background:
qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #90B750,
stop:1#CAFF70 )
}它在设计器中工作得很好。
在另一个自定义小部件中,我将许多这样的MyWidget实例添加到垂直布局中。但是背景颜色既不是根据样式表设置的,悬停也不起作用。出于测试目的,我在MyWidget中添加了一个按钮。悬停和单击是有效的。我遗漏了什么?
基本上,MyWidget只是一个带有几个标签的小部件,“容器”只是一个具有垂直布局和几个标签的ScrollArea。
有什么想法吗?
发布于 2017-08-29 04:59:22
事实证明,解决方案相当简单。
问题是,显然,如果您将一个小部件设置为另一个小部件的父部件,则最上面的小部件的背景设置为“透明”。添加第二个将主小部件作为父小部件的小部件,并将QStylesheet应用于此小部件可以解决此问题。
https://stackoverflow.com/questions/45890139
复制相似问题