如何让QWebView/QWebPage默认使用衬线字体?

3 投票
2 回答
4612 浏览
提问于 2025-04-17 11:12

我在用PyQt4的时候,创建了一个QWebView,并通过setHtml()方法加载了HTML内容。大部分情况下,HTML显示得很正常,但总是用默认的无衬线字体。

而当我把相同的HTML文本在外部浏览器,比如Firefox中打开时,它却用默认的衬线字体显示。我希望这个webview也能这样。

我查阅了QWebView、QWebPage和QWebSettings的文档,但没有找到设置默认“标准”或“比例”字体的方法,这些设置在浏览器中是可以调整的。我还看了QStyleSheets,但似乎对QWebView/WebPage没有作用。

2 个回答

0

QWebSettings看起来提供了你所需要的一切:

enum FontFamily { StandardFont, FixedFont, SerifFont, SansSerifFont, CursiveFont, FantasyFont }
void setFontFamily ( FontFamily which, const QString & family )

我还没有测试过,但你觉得缺少什么呢?你可以看看基于Qt Webkit的Arora浏览器。

5

要为所有网页设置默认字体,可以使用 QWebSettings 来更改字体类型,这里指的是 标准字体,同时也可以调整字体大小,这里指的是 默认字体大小:

settings = QtWebKit.QWebSettings.globalSettings()
settings.setFontFamily(QtWebKit.QWebSettings.StandardFont, 'Times New Roman')
settings.setFontSize(QtWebKit.QWebSettings.DefaultFontSize, 12)

撰写回答