2

gtk_window_set_default_size()根据像素调整窗口大小。如果我想根据 x 个字符调整它的大小,并且可能考虑到字体大小,我该怎么做?

从我在互联网上收集的搜索结果来看,gtk_window_set_geometry_hints()似乎也是基于像素的。

4

1 回答 1

4

您始终可以通过从字体中获取近似字符宽度来将字符转换为像素。

从相关的小部件(例如文本视图或包含您真正关心的字符的任何东西)开始,调用gtk_widget_get_pango_context,然后pango_context_load_font获取字体,pango_font_get_metrics获取字体指标,最后pango_font_metrics_get_approximate_char_width除以PANGO_SCALE获取字符宽度。在 PyGTK 中演示:

import gtk, pango

char_count = 80     # how many characters you have

w = gtk.Window()    # here you'd use another widget
ctx = w.get_pango_context()
metrics = ctx.load_font(ctx.get_font_description()).get_metrics()
char_width_pango = metrics.get_approximate_char_width()
pixel_count = char_count * char_width_pango / pango.SCALE
print pixel_count
于 2013-04-02T13:11:31.597 回答