Как загрузить локальный статический HTML-файл с помощью QtWebkit

Используя PySide QtWebkit, я хочу показать домашнюю html-страницу в QWebView. Я пытался, но не могу отобразить. Вот мой код:

home.html:

<!DOCTYPE html>
<html>
    <head><title>HomeStart</title></head>
    <body>
        <h3 align="center">Home Page</h3>
        <div>
            <img src="images/welcome.png"/>
        </div>
    </body>
</html>

код Python:

self.view = QtWebKit.QWebView()
self.view.load("home.html")  # can not render in webkit.
# QtCore.QUrl.fromLocalFile(QtCore.QFile().fileName()))  # can not render in webkit either.  

PS: файл кода Python и файл html находятся в одном каталоге. Но в webkit он отображается пустым.


person tao4yu    schedule 09.01.2014    source источник


Ответы (2)


Не имеет значения, что файл кода Python и html находятся в одном каталоге. Важно то, что файл html находится в текущем каталоге.

Если вы используете абсолютный путь:

self.view.load("/path/to/html/files/home.html")

или сначала перейдите в соответствующий каталог:

os.chdir("/path/to/html/files")
self.view.load("home.html")

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

person ekhumoro    schedule 09.01.2014

Он отлично работает для меня с очень простым кодом. Возможно, вы что-то упустили.

import sys
from PySide.QtGui import *
from PySide.QtWebKit import QWebView

class Window(QWidget):
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)

        self.view = QWebView(self)
        self.view.load("home.html")

        self.layout = QHBoxLayout()
        self.layout.addWidget(self.view)

        self.setLayout(self.layout)
        self.show()

app = QApplication(sys.argv)
win = Window()
sys.exit(app.exec_())
person Fenikso    schedule 09.01.2014