qt - QWebView不加载外部资源

标签 qt pyqt4 qwebview

我正在使用 Qt 和 PyQt4 开发一个 kiosk Web 浏览器。除了一个怪癖之外,QWebView 似乎工作得很好。

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

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

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

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_())

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

最佳答案

不知道为什么这不起作用,但类似

 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>")

是的。

关于qt - QWebView不加载外部资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2293983/

相关文章:

c++ - 找出QPlainTextEdit删除的文本

python - 从 pyqt4 中的 QTableView 复制/粘贴多个项目?

c++ - Qt 4 : How implement a "Go" button to the QWebView

qt - 如何在 Qt3D 中改变光线

qt - QWidgets 移动时会发出信号吗?

qt - OpenCV 和 Qt : Mat to QLabel QPixmap

python - 如何按名称获取 QListWidget 项目?

python - 允许在 QComboBox 中水平滚动

c++ - 在 Qt 中将父级添加到 UI 对象

c++ - 更改 QWebView 中的突出显示颜色