关于qt:qWebView不加载外部资源

QWebView not loading external resources

我正在使用qt和pyqt4开发Kiosk Web浏览器。除了一个怪癖,QWebView似乎工作得很好。

如果由于任何原因无法加载URL,我希望将用户重定向到自定义错误页。我使用loadFinished()信号检查结果,并在必要时使用qwebview.load()将URL更改为自定义页面。但是,我尝试在这里加载的任何页面都无法拉入外部资源,如CSS或图像。

使用qwebview.load()在启动时设置初始页面似乎工作正常,单击自定义错误页面上的任何链接将导致目标页面加载正常。只是错误页面不起作用。

我真的不知道下一步该去哪里。我已经包含了一个应用程序的源代码,它将复制下面的问题。它将URL作为命令行参数-有效的URL将正确显示,错误的URL(如DNS解析失败)将重定向到Google,但缺少徽标。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import sys from PyQt4 import QtGui, QtCore, QtWebKit

class MyWebView(QtWebKit.QWebView):
 def __init__(self, parent=None):
  QtWebKit.QWebView.__init__(self, parent)
  self.resize(800, 600)
  self.load(QtCore.QUrl(sys.argv[1]))
  self.connect(self, QtCore.SIGNAL('loadFinished(bool)'), self.checkLoadResult)

 def checkLoadResult(self, result):
  if (result == False):
   self.load(QtCore.QUrl('http://google.com'))

app = QtGui.QApplication(sys.argv)
main = MyWebView()
main.show()
sys.exit(app.exec_())

如果有人能提供一些建议,我们将不胜感激。


不知道为什么这不起作用,而是像

1
2
3
4
5
6
7
 def checkLoadResult(self, result):
  if (result == False):
    self.page().mainFrame().setHtml ("<html><head>Not Found</head>\
     <body><p>
 Search at   google \
     
</p></body> </html>")

做。