如何在Gtk::TextView中设置可见行数?

How do I set the number of visible lines in a Gtk::TextView?

本文关键字:设置 Gtk TextView      更新时间:2023-10-16

我有一个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);