我有一个 Gtk::TextView,无论字体大小如何,我总是希望有两行文本可见。显然,如果输入的行超过两行,则框会滚动,但我希望文本视图保持 2 行高。
我该怎么做呢?
这是非常困难的。例如,如果两种字体大小混合在一行中,你会怎么做?
一种方法是创建一个字母的 Pango 布局并找出它的高度。这是我曾经用 C 编写的一些代码的未经测试的简化;但是将其转换为 C++ 和 GTKmm 应该不会太麻烦:
PangoLayout *cell = gtk_widget_create_pango_layout(textview, "X");
int line_height;
pango_layout_get_pixel_extents(cell, NULL, &line_height);
g_object_unref(cell);
gtk_widget_set_size_request(textview, -1, line_height);