【问题标题】:QWebView not loading external resourcesQWebView 不加载外部资源
【发布时间】:2010-02-19 04:02:16
【问题描述】:

我正在开发一个使用 Qt 和 PyQt4 的信息亭网络浏览器。 QWebView 似乎工作得很好,除了一个怪癖。

如果由于某种原因无法加载 URL,我想将用户重定向到自定义错误页面。我已经使用 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_())

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

【问题讨论】:

    标签: qt pyqt4 qwebview


    【解决方案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>")
    

    确实如此。

    【讨论】:

      猜你喜欢
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-13
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      相关资源
      最近更新 更多