日期:2014-05-16  浏览次数:20716 次

有关GTK+2.X字体处理的问题
有个问题困扰我好几天了:使用GtkTextView时,怎么取得某一字体下一个字符串的像素宽度?(字体通过pango渲染)

------解决方案--------------------
针对你的需求,你可以简单地用如下函数实现:
PangoLayout* gtk_widget_create_pango_layout (GtkWidget *widget,
const gchar *text);

比如你想获得字符串 "string "在某个TextView中的像素宽度(不考虑换行及PangoMark),那么你只需调用上述函数:

PangoLayout *layout;

layout = gtk_widget_create_pango_layout(GTK_WIDGET(text_view), "string ");
if (layout) {
pango_layout_get_pixel_size(layout, &width, NULL);
g_object_unref(layout);
}