将背景样式表设置为QWidget显示在所有控件上

时间:2011-09-11 01:25:46

标签: css qt qwidget

我已将以下CSS设置为QWidget样式表:

QWidget { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #00b7ea, stop: 1 #009ec3); /* Chrome10+,Safari5.1+ */ }

它工作正常,但是当我在画布上放置一个按钮或任何其他控件时,我得到了相同的背景颜色。

enter image description here

有人可以帮我解决这个问题吗。

我尝试过使用QFrame,但我总是在框架周围找到一个边框:

enter image description here

1 个答案:

答案 0 :(得分:6)

QWidget设置样式表时,样式表将应用于该QWidget以及该窗口小部件的整个子层次结构。由于您使用QWidget作为选择器,因此该样式将应用于任何QWidgetQWidget 子类QPushButtonQWidget的子类,因此应用了样式规则。

有很多方法可以用选择器挑出主QWidget。在这种情况下,最简单的方法是使用.QWidget,它只会定位QWidget而不是QWidget子类。

如果您最终在子级别结构中拥有其他QWidget,则可以通过使用objectName标识类和Classname#objectName属性来提高选择性。

您应该阅读Qt文档的this section了解更多信息。