5

在 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;
}

这不会像预期的那样以衬线字体呈现,而是以通用的无衬线字体呈现。但是,颜色显示没有问题。

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

编辑:由于我在这里设置赏金,这里有一个快速的 tl;dr 应该总结所有重要的事情:

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

如果你想自己测试一下,这里是我正在处理的项目的 GitHub 存储库的链接。README 中列出了依赖项。

4

1 回答 1

4

在 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;
}
于 2013-08-19T22:33:04.967 回答