【问题标题】:Sane default fonts?健全的默认字体?
【发布时间】:2010-07-19 14:44:35
【问题描述】:

有没有一个地方可以让我获得所有带有 GTK 的系统上保证存在的所有字体的列表?我需要一种方法来为某些绘图设置合理的默认字体,当然,合理的默认字体必须存在。

编辑:如果不保证存在特定字体,是否有一种简单的方法来获得 some 健全的默认可缩放无衬线字体?我不在乎细节。

编辑#2:如果在 GTK 上什么都不能保证,有人可以给我很好的特定于平台的默认可缩放无衬线字体,这些字体可以保证在任何合理的 Windows 和 *nix/X11 安装上都存在?

【问题讨论】:

    标签: fonts gtk


    【解决方案1】:

    由于 GTK 是一个跨平台工具包并且不安装任何自己的字体,因此不能保证任何带有 GTK 的系统上都存在任何字体。

    根据您渲染绘图的方式(开罗?),任何文本都应该已经以默认字体绘制。 编辑:听起来您正在使用gdk_draw_layout() 来绘制文本。这需要一个PangoLayout 参数。如果您使用gtk_widget_create_pango_layout() 获得PangoLayout,那么它应该已经有一个合理的默认字体集。您甚至可以通过使用pango_layout_get_context() 获取PangoContext,然后调用pango_context_get_font_description() 来找出它是什么字体。

    如果您也在使用 GNOME,那么您可以使用 GConf 检查 /desktop/gnome/interface/font-name/desktop/gnome/interface/monospace-font-name/desktop/gnome/interface/document-font-name 键的值。

    【讨论】:

    • 我现在使用的是 DrawingArea 和 gdk 的可绘制 API。
    【解决方案2】:

    您应该在 GTK+ 中使用的默认字体是“Sans”、“Monospace”和“Serif”。我不相信任何特定的字体都可以保证存在。

    【讨论】:

    • 这些是可缩放字体吗?我可以假设存在我需要的任何尺寸吗?另外,它们是否区分大小写?
    • 我认为可以安全地假设 Sans、Monospace 和 Serif 是可扩展的并且有大小写。它们只是给定平台的默认字体。这些是在您的应用程序中使用的正确默认字体。如果它们被破坏,修复将是平台,而不是应用程序。
    猜你喜欢
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 2015-04-25
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多