PySide-QtWebKit:CSS font-family无效

时间:2013-08-15 22:19:03

标签: python css qt pyside qtwebkit

在QWebView中,我使用QWebView.setHtml()动态创建和加载HTML。在我传递给此方法的HTML字符串中,我有一个<style>部分,我从外部文件中注入一个CSS字符串。除了字体系列之外,CSS工作得很漂亮。字体总是回退到QWebView默认的sans-serif字体。我可以使用QWebView.settings().setFontFamily(QtWebKit.QWebSettings.StandardFont, "serif")更改默认字体,但这只会使页面上的所有内容成为serif字体,而不是遵循CSS字体系列值。

我的CSS文件中的相关部分:

.page-title {
    color:#BBBBBB;
    font-family:"Times New Roman",Garamond,serif;
}

这不会按预期以serif字体呈现,而是以通用的sans-serif字体呈现。但是,颜色显示没有问题。

有一次,为了调试,我在调用QWebView.setHtml()之前打印了完整的HTML字符串,并将输出重定向到一个文件。当我在Chromium中打开它时,此文件按预期呈现,让我相信问题是 HTML / CSS问题。如果您感兴趣,Here就是输出。

编辑:因为我在这里设置赏金,所以这是一个快速的tl;博士应该总结一切重要的事情:

使用PySide,我如何在通过QWebView.setHtml()加载的HTML页面中制作QWebView荣誉CSS字体系列设置?具体来说,是否存在一些秘密隐藏设置切换这种行为是否开启?或者我应该将此报告为框架中的错误?

如果您想自己测试一下,Here是我正在处理的项目的GitHub仓库的链接。依赖关系列在自述文件中。

1 个答案:

答案 0 :(得分:3)

在Page.html的标题中(您链接的标题)https://raw.github.com/crayZsaaron/df-legends-reader/master/page.html

我发现了这个..

.page-title {
    color:#BBBBBB;
    font-family:Helvetica, sans-serif;
}

也许尝试删除它,或用此

替换它
.page-title {
    color:#BBBBBB;
    font-family:"Times New Roman",Garamond,serif;
}