2014-12-13 86 views
0

我有一个QGraphicsWebView,我通过附加标签构建一个页面。例如:QWebView不加载Qt资源图片

webElement.appendInside("<img src=<img src=\"qrc:/img/ioLlogoTopLeft.png\" />"); 

这发生在辅助QThread中。我也用资源来设置的造型在同一个线程:

defaultBaseFrame->setStyleProperty("background-image", "url(qrc:/img/ioLGradientTop.png)"); 

这两种线都工作正常,但在过去几年建立,他们已经停止了工作,而且我不知道为什么。现在我得到一个空框架,而不是出现背景。资源路径看起来很好,并且在程序的其他(非web视图)部分中正常工作。

另一方面,当我用互联网上的位置(http:// url)替换图像URL时,图像正常加载。

在多线程环境中使用资源是否存在一些问题(或者仅仅是一个红鲱鱼?)资源图像在以前工作,我想不出最近更改的代码中的任何相关内容。

回答

0

解决了它。而不是一个特别满意的解决方案更多的只是Qt的一个怪癖。事实证明,当我删除了(我认为)的WebView中的冗余初始化一个空白页的问题开始:

webView->setHtml("<html><head></head><body></body></html>"); 

当我重新添加它,在资源文件中的图像又开始工作。在功能上似乎没有任何其他差异;所有其他页面元素都呈现相同,只是一个小怪癖已修复。

回想一下,我正在从一个空白的DOM树构建页面。我曾错误地认为,以上的线路是多余的,因为QWebView总是把那些样板HTML标签自动不分,和几乎一切正常,因为它应该两种方式。