我在gschem上工作,这是一个用于编辑电子原理图的免费软件工具。最近我们在使用包含GtkTextView的GtkScrolledWindow时遇到了问题。
语境
最新版本的 Ubuntu 使用覆盖滚动条,这意味着 GtkScrolledWindows 不再设置为传统滚动条提供足够空间的最小高度(实际上,它们的最小高度为 0)。同样,没有要显示的文本的 GtkTextView 请求高度为 0。这意味着 gschem 中的可滚动 GtkTextView 之一已显示为高度为一个像素,这显然是不可用的。
在上面显示的屏幕截图右侧的对话框中,请注意“值:”标签和“添加”按钮之间的不可见小部件。
这已由多个用户独立报告 - 另请参阅错误报告。
问题
显然,我们可以通过这样做来解决这个问题:
g_object_set (textview, "height-request", 100, NULL);
但是,这非常不雅,并且对于以像素为单位设置非常大字体大小的用户(例如,有视力问题或使用高 DPI 屏幕的用户)会破坏。
因此,理想情况下,我们希望设置 GtkTextView 相对于默认字体大小的最小大小,例如告诉它“显示至少三行文本”。
谁能建议一种明智/优雅的方法来做到这一点?