【发布时间】:2011-06-17 08:40:45
【问题描述】:
样式表有一个奇怪的问题:我有一个窗口,是 QWidget 类的子窗口。我对其应用样式表,以理想地将整个窗口的背景更改为带有 repeat-x 和 repeat-y 的图像,然后将其平铺。
样式表“管道”有效。如果我使用“背景颜色”并将其设置为红色,则整个窗口将被涂成红色。但是,如果我使用背景图像,它不会。如果我在窗口内添加一个子小部件(使用 Qt-Designer),则背景图像将在该子小部件内工作,但不在它之外,在整个父窗口中。
显然我做错了什么,但我真的不知道为什么背景颜色会在整个窗口上工作,但背景图像不会,除非有一个子小部件,然后,只有在它里面.
【问题讨论】:
-
请张贴样式表。 Qt 样式表规则与 CSS 规则并不完全相同。它可能只是一种与您预期不同的行为,例如,设置样式的范围。
-
此样式表仅在 QWidget 后代窗口上已经存在 QWidget 元素时才显示 jpeg,但仅在该元素的区域中,而不是在整个窗口中。 QWidget { background-image: url(:/images/metal-texture.jpg);背景位置:左上角;背景重复:重复-x重复-y; /*背景颜色:红色;*/ }
-
对不起,我还是不知道发生了什么。我需要知道样式表应用在哪个元素上。而且我仍然不清楚您的小部件层次结构。您能否发布一些代码,或者绘制一个 ASCII 图或其他东西?抱歉我太密集了... :)
-
顺便说一句,只需编辑您的问题,这样您就可以获得所有不错的格式选项,而不是尝试将其放在评论中。
-
我的小部件层次结构很简单,有一个 QWidget 派生类。没有其他的。我想做的只是有一个带有背景图像的窗口。窗口本身是空的。我可以使这个背景图像工作的唯一方法是,如果我在我的 UI 上添加一个空的 Qwidget(使用 QT-Designer)。然后背景图像只为那个 QWidget 绘制,而不是整个窗口。
标签: qt