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

标签 c++ height textview lines gtkmm

我有一个 Gtk::TextView,无论字体大小如何,我总是希望有两行文本可见。显然,如果输入了两行以上,则该框将滚动,但我希望 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);

关于c++ - 如何在 Gtk::TextView 中设置可见行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5631486/

相关文章:

c++ - 如何创建 C++ 模板?

c# - 从 PostMessage 发送的 c# 中的 c++ 免费 HBITMAP

html - Bootstrap 行自定义高度百分比

android - 如何防止删除Android中编辑文本的第一个字符

Android - 阻止 TalkBack 大声宣布 TextView 标题

c++ - 使用跨平台框架为一个平台开发有什么缺点?

C++ 链接错误。我究竟做错了什么?

html - 使连续多个链接具有相同的动态高度

css - 如何在 primefaces 的 layoutUnit 中设置高度?

Android ClickableSpan 没有调用 onClick