python - QWebView.setHtml不加载CSS文件

时间:2016-03-30 09:43:21

标签: javascript python html css pyqt5

使用包含CSS和JS文件的HTML文件运行QWebView时出现问题。

我在Windows 7 x64上使用Python 3.4运行pyqt5。

例如,这是我的HTML文件test.html:

<html>
    <head>
        <title>A Sample Page</title>
        <link rel="stylesheet" type="text/css" href="style.css">
        <script type="text/javascript" src="script.js">
    </head>
    <body>
        <h1>Hello, World!</h1>
        <hr/>
        I have nothing to say.
    </body>
</html>

我用线路

用HTML调用我的QWebView
view.setHtml(open("test.html").read())

仅使用此代码我无法在QWebView中运行样式表和脚本。 我使用line命令找到了CSS和JS文件的解决方案:

view.settings().setUserStyleSheetUrl(QUrl.fromLocalFile("style.css"))

和JS:

view.page().mainFrame().evaluateJavaScript(str(open("script.js").read()))

但是我找不到INSIDE css(或HTML)文件的字体或图像的解决方案。例如,在styles.css中:

src:url('fonts/times/timesroman.eot');

我尝试了绝对路径,但仍然没有工作。 有人可以帮忙吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我在搜索5小时后找到了解决方案,在设置绝对路径之前我必须使用前缀file:///所以我的例子是:

<html>
    <head>
        <title>A Sample Page</title>
        <link rel="stylesheet" type="text/css" href="file:///C:/Users/....../style.css">
        <script type="text/javascript" src="file:///C:/Users/....../script.js">
    </head>
    <body>
        <h1>Hello, World!</h1>
        <hr/>
        I have nothing to say.
    </body>
</html>

我希望这可以提供帮助。