Я работаю над веб-браузером в киоске, используя Qt и PyQt4. QWebView, похоже, работает достаточно хорошо, за исключением одной причуды.QWebView не загружает внешние ресурсы
Если URL-адрес не удается загрузить по какой-либо причине, я хочу перенаправить пользователя на страницу пользовательских ошибок. Я сделал это с помощью сигнала loadFinished(), чтобы проверить результат, и при необходимости измените URL-адрес на пользовательскую страницу с помощью QWebView.load(). Однако любая страница, которую я пытаюсь загрузить здесь, не может извлекать внешние ресурсы, такие как 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_())
Если кто-то может предложить некоторые советы, будем признательны.