PySide-QtWebKit:CSS 字体系列无效

Mor*_*ire 5 css python qt qtwebkit pyside

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

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

.page-title {
    color:#BBBBBB;
    font-family:"Times New Roman",Garamond,serif;
}
Run Code Online (Sandbox Code Playgroud)

这不会按预期呈现为衬线字体,而是呈现为通用无衬线字体。但是,颜色显示没有问题。

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

编辑:因为我在这里设置了赏金,所以这里有一个快速的tl;dr,它应该总结所有重要的内容:

使用 PySide,如何使 QWebView 在通过 QWebView.setHtml() 加载的 HTML 页面中遵循 CSS 字体系列设置?具体来说,是否有一些秘密的隐藏设置可以打开和关闭这种行为?或者我应该将其报告为框架中的错误?

如果您想亲自测试一下,这里是我正在开发的项目的 GitHub 存储库的链接。自述文件中列出了依赖项。

Mon*_*vez 4

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

我找到了这个..

.page-title {
    color:#BBBBBB;
    font-family:Helvetica, sans-serif;
}
Run Code Online (Sandbox Code Playgroud)

也许尝试删除它,或者用它替换它

.page-title {
    color:#BBBBBB;
    font-family:"Times New Roman",Garamond,serif;
}
Run Code Online (Sandbox Code Playgroud)