2010-04-08 147 views
1

我正在用PyQt制作Twitter客户端,它使用WebKit绘制推文列表。现在我试图使用CSS在WebKit小部件中设置背景图像 - 但图像不会显示出来。这是CSS的相关部分:PyQt WebKit CSS背景图片不显示

body                    
{                    
    background-image: url("gradient2.jpg");           
} 

文件名拼写正确,并位于同一目录下的Python程序,这也是在那里我开始从(所以图像文件的程序应该在PWD中)。

要检查WebKit是否以某种方式在错误的目录中查找图像,我通过strace运行程序,该程序会创建程序所有系统调用的日志。令人惊讶的是,图像的名称没有出现在日志中 - 所以看起来好像WebKit甚至没有尝试找到它。

要验证我的CSS全部由WebKit的使用时,我试图将其更改为一个坚实的背景色而不是图像:

body                    
{                    
    background: #CCFFCC;           
} 

这工作。所以我知道使用了CSS,这不是问题。

难道WebKit拒绝在文件系统中使用“普通”文件,并且我不知何故必须在Qt Designer中创建某种包含我的图像的“资源”文件?

回答

2

尝试删除引号。另外,请注意,如果您在“backround-image:”规则之后声明了“background:”速记规则,则背景图像将被覆盖。另外,文件路径应该与css文件相关,而不是源文件。

+0

我用双引号,单引号,没有引号,包括尝试了“背景”,没有它。另外,CSS在python源代码中,我没有使用单独的CSS文件(我无法让它工作,但是我不知道)。就好像更基本的东西是错误的。就像我在问题中所说的那样,根据strace日志,它看起来像甚至不想*打开图像文件。 – Enfors 2010-04-08 20:51:01

+0

如果你给它一个绝对的url会发生什么? – graphicdivine 2010-04-08 21:10:12

+0

用双引号和绝对路径,它*工作* - 令我非常惊讶。问题解决了,谢谢!但为什么strace日志早些时候表明它甚至没有在查找文件? 啊。我想我现在明白了。如果我没有记错,strace不会默认跟踪子进程 - 它可能是打开文件的人之一。 – Enfors 2010-04-08 21:34:02

0

你可以使用背景图片是这样的:

body                    
{                    
    background-image: url("qrc:///gradient2.jpg");           
}