PyQt WebKit CSS 背景图像未显示

1 投票
2 回答
2984 浏览
提问于 2025-04-15 21:23

我正在用PyQt做一个Twitter客户端,使用WebKit来显示推文列表。现在我想用CSS在WebKit小部件中设置一个背景图片,但图片就是不显示。这是CSS中相关的部分:

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

文件名拼写是正确的,而且它和Python程序在同一个文件夹里,我也是从这个文件夹启动程序的(所以图片文件应该在当前工作目录里)。

为了检查WebKit是否在错误的目录中寻找图片,我用strace运行了我的程序,这个工具可以记录程序所做的所有系统调用。结果让我惊讶的是,日志中根本没有出现图片的名字——这似乎说明WebKit根本没有尝试去找它。

为了确认我的CSS是否被WebKit使用,我尝试把背景改成一个纯色,而不是图片:

body                                                                            
{                                                                               
  background: #CCFFCC;                                         
}

这样是可以的。所以我知道CSS是被使用的,这不是问题所在。

难道WebKit不允许使用文件系统中的“普通”文件?我是不是需要在Qt Designer中创建某种“资源”文件来包含我的图片?

2 个回答

0

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

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

试着去掉引号。另外,要记住,如果你在写“background:”这个简写规则的时候,放在“background-image:”规则之后,那么背景图片会被覆盖掉。还有,文件路径应该是相对于css文件的,而不是源文件的。

撰写回答