4

我正在编写一个显示文件夹中的静态 HTML 文件的应用程序。出于某种原因,PyQt4 的QWebView类不允许渲染任何字体,即使对于远程网站也是如此:

QWebView

字体不好,不好

好字体

我正在像这样加载文件:

self.web_view = QWebView()
self.settings = self.web_view.settings()
self.settings.setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls, True)

self.web_view.load(QUrl('http://blender3d.github.com/Bevel/demo/'))

是否还有其他安全设置需要更改才能使其正常工作?

4

3 回答 3

7

QWebView经过几个小时的折磨,我终于注意到Font Squirrel惊人地渲染了一个外部字体。我多次突出显示这些字母,敬畏地坐在那里,微笑着。

无论如何,似乎是为了使它工作QWebView

@font-face {
  font-family: 'Terminal Dosis';
  font-style: normal;
  font-weight: 400;
  src: local('Dosis Regular'), local('Dosis-Regular'), url('../fonts/terminal-dosis-regular.woff') format('woff');
}

我必须让它看起来像这样:

@font-face {
  font-family: 'Terminal Dosis Regular';
  src: url('../fonts/terminal-dosis-regular.ttf') format('truetype');
}

请注意,QWebView不喜欢 WOFF 字体。我必须通过Font Squirrel将我的转换为 TrueType 。

简而言之:

  • 确保您的字体是 TrueType 字体。
  • 没有local()东西。
  • 它似乎font-stylefont-weight忽略了。您必须为每种字体的每种样式制作不同的字体系列(Terminal Dosis Bold例如)。
于 2012-08-08T04:50:23.677 回答
0

示例 url的样式表使用 css@font-face规则来指定在线字体。

不幸的是,这看起来目前在 QWebKit 中被破坏了:Bug 36351

于 2012-08-08T02:28:51.303 回答
0

坏了!本文中可能的解决方法:

http://blog.elliottcable.name/posts/webkit_safari_3_1_and_the_css_font_face_declaration.xhtml

于 2012-08-08T02:54:36.513 回答