首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pango选择多个字体

Pango选择多个字体
EN

Stack Overflow用户
提问于 2015-05-06 11:20:24
回答 1查看 433关注 0票数 0

我想在我的pango软件中使用三种字体:

  • Font1:拉丁文,字母
  • Font2:韩语字符
  • Font3:日语字符

Pango正确地呈现文本,但我想选择一个字体

有什么方法来表示这种偏好pango字体吗?

我使用: linux和pango 1.29

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-27 05:24:11

最简单的方法是使用PangoMarkup设置所需的字体:

代码语言:javascript
复制
//  See documentation for Pango markup for details

char *pszMarkup = "<span face=\"{font family name goes here}\">"
                  "{text requiring font goes here}"
                  "</span>";  //  Split for clarity
char            *pszText;   // Pointer for text without markup tags
PangoAttrList   *pAttr;     // Attribute list - will be populated with tag info

pango_parse_markup (pszMarkup, -1, 0, &attr_list, &pszText, NULL, NULL);

现在您有了一个常规文本缓冲区和一个属性列表。如果您想手动设置这些字体(而不需要通过解析器),则每个字体实例需要一个PangoAttribute,并手动设置PangoAttribute.start_index和PangoAttribute.end_index。

无论您如何获得它们,现在都将它们交给一个PangoLayout:

代码语言:javascript
复制
//  pWidget is the windowed widget in which the text is displayed:

PangoContext *pCtxt = gtk_widget_get_pango_context (pWidget);
PangoLayout  *pLayout = pango_layout_new (pCtxt);

pango_layout_set_attributes(pLayout, pAttr);
pango_layout_set_text (pLayout, pszText, -1);

就这样。使用pango_cairo_show_layout (cr,pLayout)显示结果。设置只需要在内容更改时更改--它跨绘制信号维护值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30075236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档