2013-10-03 66 views
2

我是Qt新手,遇到一些问题!使用QtCreator,我创建了一个简单的窗口,我现在试图设置背景图片。Qt:使用样式表设置背景图片不适用于资源

搜索周围使我相信我应该使用QT样式表,并试图一些例子我得到了一个背景图片,通过使用工作后:

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

在主图像的构造。然而,这个URL参考显然很糟糕,所以我尝试使用资源。我的QRC看起来是这样的:

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

现在尝试设置样式与

this->setStyleSheet(" background-image: url(:/images/image2.jpg)"); 

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

或两者的任何组合都不行!

一个奇怪的事情我没有发现的是,当我去到设计窗口,然后转到属性窗口,并设置主窗口的样式表

background-image: url(:/images/image2.jpg) 

它实际上在设计预览显示背景图片!但只要我启动应用程序,背景图像就消失了!

任何人都可以解释为什么我有这些问题?谢谢!

+0

这可能是一个插件问题。您可以尝试将图像从'.jpg'格式更改为'.png'格式,然后查看是否有效。此外[看到这个答案](http://stackoverflow.com/questions/18061173/qt-icons-from-resource-file-do-not-display/18073627#18073627)。 – thuga

+1

试试':/ images/background.jpg'。 –

+0

我试过两种都没有工作:(编辑:和我没有安装任何插件! –

回答

2

我认为你所需要做的就是在引号内添加一个分号。

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