在QWebView中,我正在动态创建和加载HTML,使用QWebView.setHtml()方法。在我传递给该方法的HTML字符串中,我有一个
CSS文件中的相关部分:
这个问题出在字体上,预期中应该是一种有衬线字体,但实际呈现的是一种通用无衬线字体。然而,颜色显示没有问题。
为了调试,我曾经在调用QWebView.setHtml()之前,将整个HTML字符串打印出来,并将输出重定向到一个文件。当我在Chromium中打开这个文件时,它按照预期的方式呈现,这让我相信这个问题不是HTML/CSS问题。如果你有兴趣,可以从这里查看输出文件。
编辑:由于我在这里设置了赏金,请看这个快速tl;dr,它应该总结了所有重要内容: 使用PySide,我如何使一个由QWebView.setHtml()加载的HTML页面遵循CSS字体系列设置?具体来说,是否有某些秘密的隐藏设置可以切换这种行为?还是我应该在框架中报告这个问题?
如果你想自己测试一下,这里是我正在开发的项目的GitHub存储库链接。依赖关系在README中列出。
<style>
部分,其中我从外部文件注入CSS字符串。CSS工作得非常好,除了字体系列。字体总是回退到QWebView默认的无衬线字体。我可以使用QWebView.settings().setFontFamily(QtWebKit.QWebSettings.StandardFont, "serif")
更改该默认字体,但这只是使页面上的所有内容成为衬线字体,而不是遵守CSS font-family值。CSS文件中的相关部分:
.page-title {
color:#BBBBBB;
font-family:"Times New Roman",Garamond,serif;
}
这个问题出在字体上,预期中应该是一种有衬线字体,但实际呈现的是一种通用无衬线字体。然而,颜色显示没有问题。
为了调试,我曾经在调用QWebView.setHtml()之前,将整个HTML字符串打印出来,并将输出重定向到一个文件。当我在Chromium中打开这个文件时,它按照预期的方式呈现,这让我相信这个问题不是HTML/CSS问题。如果你有兴趣,可以从这里查看输出文件。
编辑:由于我在这里设置了赏金,请看这个快速tl;dr,它应该总结了所有重要内容: 使用PySide,我如何使一个由QWebView.setHtml()加载的HTML页面遵循CSS字体系列设置?具体来说,是否有某些秘密的隐藏设置可以切换这种行为?还是我应该在框架中报告这个问题?
如果你想自己测试一下,这里是我正在开发的项目的GitHub存储库链接。依赖关系在README中列出。
!important
。像这样:font-family: "Times New Roman", "Garamond", "serif" !important;
。祝你好运! - Mathieu Marques