我有一个QGraphicsWebView,我通过附加标签来构建页面。例如:
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 :(得分:0)
解决了它。而不是一个特别满意的解决方案;更多只是Qt的怪癖。事实证明,当我将WebView的冗余初始化(我假设)删除为空白页时,问题就开始了:
webView->setHtml("<html><head></head><body></body></html>");
当我重新添加它时,资源文件中的图像再次开始工作。功能上似乎没有任何其他差异;所有其他页面元素都呈现相同,只是修复了一个小怪癖。
回想一下,我是从一个空白的DOM树构建页面。我错误地认为上面的行是多余的,因为QWebView总是自动插入那些样板HTML标签,而且几乎一切都按照它应该的方式工作。