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

San*_*sal 3 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+ */ }
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

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

在此输入图像描述

Arn*_*nce 6

为a设置样式表时QWidget,样式表将应用于QWidget该窗口小部件的整个子层次结构.由于您QWidget用作选择器,因此该样式将应用于任何QWidgetQWidget 子类.A QPushButton是其子类QWidget,因此应用了样式规则.

有很多方法可以用选择器单独输出主QWidget.在这种情况下,它可能是最简单的办法使用.QWidget,这将只针对QWidgetS和不QWidget子类.

如果您最终QWidget在子层次结构中拥有其他s,则可以通过使用标识类和objectName属性来更具选择性Classname#objectName.

您应该阅读Qt文档的这一部分以获取更多信息.