Qt:使用样式表设置背景图像不会';我不能利用资源工作

Qt:使用样式表设置背景图像不会';我不能利用资源工作,qt,qt5,qtgui,Qt,Qt5,Qtgui,我是Qt新手,有一些问题!使用QtCreator,我创建了一个简单的窗口,我现在正试图设置它的背景图像 四处搜索使我相信我应该使用QT样式表,在尝试了一些示例后,我通过使用以下工具获得了背景图像: this->setStyleSheet(" background-image: url(C:/test.jpg)"); 在主映像的构造函数中。然而,这个url引用显然非常糟糕,所以我尝试使用参考资料。我的qrc如下所示: <RCC> <qresource prefix

我是Qt新手,有一些问题!使用QtCreator,我创建了一个简单的窗口,我现在正试图设置它的背景图像

四处搜索使我相信我应该使用QT样式表,在尝试了一些示例后,我通过使用以下工具获得了背景图像:

this->setStyleSheet(" background-image: url(C:/test.jpg)");
在主映像的构造函数中。然而,这个url引用显然非常糟糕,所以我尝试使用参考资料。我的qrc如下所示:

<RCC>
    <qresource prefix="/images">
        <file alias="background.jpg">image2.jpg</file>
    </qresource>
</RCC>

或者两者的任何组合都不起作用

我发现的一件非常有趣的事情是,当我转到designer窗口,转到properties窗口,并将主窗口的样式表设置为

 background-image: url(:/images/image2.jpg)
它实际上会在设计器预览中显示背景图像!但我一启动应用程序,背景图像就消失了


有人能解释我为什么会有这些问题吗?谢谢

我想你所需要做的就是在引号中加一个分号

this->setStyleSheet(" background-image: url(C:/test.jpg);");

要在qt中使用图像,必须将其添加到.qrc文件。

这可能是插件问题。您可以尝试将图像从
.jpg
格式更改为
.png
格式,然后查看是否有效。另外.Try
:/images/background.jpg
。我尝试了这两种方法,但两种方法都没有成功:(编辑:而且我没有安装任何插件!尝试url(qrc:/images/background.png)@FrankOsterfeld添加qrc没有帮助。但是现在有了一个wierd更改。设置样式表background image:url(:/images/image2.jpg)在设计器中,当我启动应用程序时,它现在可以工作,但不再显示在预览中。但是尝试从下面的代码中添加它->setStyleSheet(“background image:url(:/images/image2.jpg)”);仍然不起作用,这是我最终想要做的,这似乎与公认的答案相矛盾。我猜.qrc会将图像作为资源嵌入到应用程序中?我想你仍然可以读取外部文件?我应该说,在qt中使用图像的最佳方法是将其添加到qrc文件中,因为在公认的答案中,路径会只为那台机器工作。我认为你不理解这个问题。他试图在样式表中使用来自资源的背景图像,而不是直接路径。
 background-image: url(:/images/image2.jpg)
this->setStyleSheet(" background-image: url(C:/test.jpg);");