【问题标题】:Can I automatically flow two font styles in a Pango Cairo Layout?我可以在 Pango Cairo 布局中自动排列两种字体样式吗?
【发布时间】:2012-09-12 21:52:11
【问题描述】:

我想要两个具有不同文本样式的段落,一个在另一个之上。这是描述它的最快方式:

<p style="font-size: 20pt">Para 1</p><p style="font-size: 10pt">Para 2</p>

我在两者上都设置了换行,所以直到运行时我才知道第一个高度是多少。如果我在第 1 段中有很多行,我会想把第 2 段往下移。如果我在第一段中有一行,我想将第 2 段上移。正如 HTML 所表现的那样。

但似乎我只能使用pango_layout_set_font_description(PangoLayout *, PangoFontDescription *) 为每个布局设置一种字体样式。

  1. 这是否意味着我需要使用 2 个布局?
  2. 如果是这样,如何让第二个布局立即出现在第二个布局的下方?我是否需要使用pango_layout_get_height(PangoLayout *) 并相应地移动第二个布局?

【问题讨论】:

    标签: cairo pango


    【解决方案1】:

    这应该是可能的。如果你使用 pango_parse_markup(),你可以使用类似 'foobar' 的东西。如果您不想使用 pango_parse_markup(),请查看 PangoAttrType 和 PangoAttrList。但是,我没有他们的任何例子。看起来你需要 pango_attr_list_new()、pango_attr_list_insert()、pango_attr_size_new() 和 pango_layout_set_attributes()。 (在 PangoAttribute 中设置 start_index 和 end_index!)

    当然,您也可以使用多种布局,但让 pango 为您找出所需的魔法可能更容易。

    【讨论】:

    • 恐怕我需要这个的项目已被取消,所以我无法测试这个。我会给你一个赞成票,但我无法将其标记为正确,抱歉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2012-04-29
    相关资源
    最近更新 更多