1

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

<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 *)相应地使用和移动第二个布局?
4

1 回答 1

1

这应该是可能的。如果你使用 pango_parse_markup(),你可以使用类似 '<span font="Sans 12">foo</span><span font="Sans 16">bar</span>' 的东西。如果您不想使用 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 为您找出所需的魔法可能更容易。

于 2012-09-25T06:28:51.940 回答