2014-01-09 3 views
1

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

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> 

код питона:

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 это делает его пустым.

ответ

0

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

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

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

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

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

или изменения в соответствующий каталог первой:

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

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

Смежные вопросы