フォントサイズに関係なく、常に2行のテキストを表示したいGtk::TextViewがあります。明らかに、3行以上入力した場合、ボックスはスクロールしますが、テキストビューの高さは2行のままにしておきます。
どうすればよいですか?
これは非常に難しいです。たとえば、2つのフォントサイズが1行に混在している場合はどうしますか?
これを行う1つの方法は、1文字の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);