我已将以下CSS设置为QWidget样式表:
QWidget { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #00b7ea, stop: 1 #009ec3); /* Chrome10+,Safari5.1+ */ }
它工作正常,但是当我在画布上放置一个按钮或任何其他控件时,我得到了相同的背景颜色。
有人可以帮我解决这个问题吗。
我尝试过使用QFrame,但我总是在框架周围找到一个边框:
答案 0 :(得分:6)
为QWidget
设置样式表时,样式表将应用于该QWidget
以及该窗口小部件的整个子层次结构。由于您使用QWidget
作为选择器,因此该样式将应用于任何QWidget
或QWidget
子类。 QPushButton
是QWidget
的子类,因此应用了样式规则。
有很多方法可以用选择器挑出主QWidget。在这种情况下,最简单的方法是使用.QWidget
,它只会定位QWidget
而不是QWidget
子类。
如果您最终在子级别结构中拥有其他QWidget
,则可以通过使用objectName
标识类和Classname#objectName
属性来提高选择性。
您应该阅读Qt文档的this section了解更多信息。