QWebView无法加载外部资源

时间:2010-02-19 04:02:16

标签: qt pyqt4 qwebview

我正在使用Qt和PyQt4在Kiosk网络浏览器上工作。除了一个怪癖之外,QWebView似乎运行得很好。

如果因任何原因无法加载网址,我想将用户重定向到自定义错误页面。我已经使用loadFinished()信号来检查结果,并在必要时使用QWebView.load()将URL更改为自定义页面。但是,我尝试加载的任何页面都无法引入CSS或图像等外部资源。

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

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

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 个答案:

答案 0 :(得分:1)

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

 def checkLoadResult(self, result):
  if (result == False):
    self.page().mainFrame().setHtml ( "<html><head><h1>Not Found</h1></head>\
     <body><p> Search at  <a href='http://google.com'> google </a>\
     </p></body> </html>")

一样。