如何使用QtWebkit加载本地静态html文件

时间:2014-01-09 08:01:23

标签: python pyside qtwebkit

使用PySide QtWebkit,我想在QWebView中显示一个主页html页面。我试过了,但我无法渲染它。这是我的代码:

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中它将它呈现为空白。

2 个答案:

答案 0 :(得分:1)

python代码文件和html在同一目录中没有区别。重要的是,html文件位于当前目录

如果使用绝对路径:

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

或首先更改为相关目录:

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

那么它应该可以正常工作。

答案 1 :(得分: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_())