将小部件添加到布局后QStylesheet无法正常工作

时间:2017-08-25 22:27:12

标签: c++ qt qt5

我创建了一个自定义窗口小部件并将以下样式表应用于它(通过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实例添加到Vertical布局中。但是背景颜色都不是根据样式表设置的,也不是悬停工作。出于测试目的,我向MyWidget添加了一个按钮。悬停和点击工作。我错过了什么?

基本上MyWidget只是一个带有几个标签的小部件,"容器"只是一个带有垂直布局的ScrollArea,还有一些标签。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

事实证明,解决方案相当简单。

问题是,显然,如果您将窗口小部件添加到另一个窗口小部件,则最顶层窗口小部件的背景设置为"透明"。添加第二个小部件,其中主要小部件作为父小部件并将QStylesheet应用于此小部件可以解决问题。