3

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

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

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

在此处输入图像描述

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

我试过使用 QFrame 但我总是在 Frame 周围得到一个边框,如下所示:

在此处输入图像描述

4

1 回答 1

6

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

有很多方法可以用选择器挑出主要的 QWidget。在这种情况下,最简单的方法是使用.QWidgetwhich 只针对QWidgets 而不是QWidget子类。

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

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

于 2011-09-11T03:03:31.903 回答