2016-04-20 3 views
2

Вот моя проблема: я хочу загрузить локальный html-файл в QWebView в Python. EDIT: Я использую PySide как пакет Qt.Загрузите локальный файл html в QWebView в Python

Мой код:

class myWindow(QWidget): 
    def __init__(self, parent=None): 
     self.view = QWebView(self) 
     filepath = "file://" + os.path.join(os.path.dirname(__file__), 'googlemap.html') 
     self.view.load(QUrl(filepath)) 

Это просто показывает мне пустой виджет. Если изменить

self.view.load(QUrl(filepath) 

по

self.view.load(QUrl("http://www.google.com/")) 

Он отлично работает.

Однако файл явно находится в хорошем каталоге, и я могу открыть тот же файл непосредственно в моем браузере.

EDIT 2: Проблема возникает после обновления на моем Raspberry Pi 2 (которая проходит выше код)

+0

Пытались ли вы с 'setUrl()' вместо 'нагрузки()'? – IAmInPLS

+0

Да, я сделал. И это тоже не работает. Спасибо – Stef

ответ

3

Два наблюдения:

  • путь должен быть абсолютным (не родственник)
  • использовать QUrl.fromLocalFile(path)

так что-то вроде этого

file_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "aa.html")) 
local_url = QUrl.fromLocalFile(file_path) 
browser.load(local_url) 

должно работать.

Полный пример:

from PyQt4.QtWebKit import QWebView 
from PyQt4.QtGui import QApplication 
from PyQt4.QtCore import QUrl 
import sys 
import os 

app = QApplication(sys.argv) 

browser = QWebView() 
file_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "aa.html")) 
local_url = QUrl.fromLocalFile(file_path) 
browser.load(local_url) 

browser.show() 

app.exec_() 
+0

Спасибо за ваш ответ, но он не сработал ... Когда я печатаю local_url, я получил правильный путь к моему файлу, хотя BTW, я опускаю, что использую PySide – Stef

+0

- ваш файл действителен html? Я не очень хорошо знаком с pyside, но в целом он должен работать так же. Вы пробовали распечатать свой URL? Если вы печатаете URL-адрес и нажимаете его в браузере, он открывается в порядке? Вы действительно должны опубликовать свой полный код, который поможет воспроизвести проблему (включая импорт), поскольку вы видите, что существуют различные оболочки python qt, есть также другая версия QT, и это может иметь значение для вашей проблемы. –

+0

Да, я написал URL прямо в веб-браузере, и он сработал. Хотя, я не думаю, что другая часть моего кода является причиной, потому что программа отработала до 2 недель назад. Я думаю, что это может быть обновление на моей машине (малина Pi 2), которая может быть причиной дисфункции. – Stef