首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GtkScrolledWindow中自动调整GtkTextView大小

在GtkScrolledWindow中自动调整GtkTextView大小
EN

Stack Overflow用户
提问于 2011-12-13 07:38:42
回答 4查看 672关注 0票数 7

我在gschem工作,这是一个编辑电子原理图的免费软件工具。最近,我们在使用包含GtkTextViewGtkScrolledWindow时遇到了问题。

上下文

最近版本的Ubuntu使用了覆盖滚动条,这意味着GtkScrolledWindows不再设置最小高度来为传统滚动条提供足够的空间(实际上,它们的最小高度为0)。同样,没有要显示的文本的GtkTextView请求高度为0。这意味着gschem中的一个可滚动GtkTextViews一直显示为一个像素的高度,这显然是不可用的。

在上面显示的屏幕截图右侧的对话框中,注意"Value:“标签和"Add”按钮之间的不可见小部件。

几个用户已经独立地报告了这一点--另请参阅bug report

问题

显然,我们可以通过执行以下操作来解决此问题:

代码语言:javascript
复制
g_object_set (textview, "height-request", 100, NULL);

然而,这是相当不优雅的,并将打破以像素设置非常大的字体大小的用户(例如,有视力问题的用户或使用高DPI屏幕的用户)。

因此,理想情况下,我们希望设置GtkTextView相对于默认字体大小的最小大小,例如,告诉它“至少显示三行文本”。

有没有人能建议一种明智/优雅的方法来做到这一点呢?

EN

回答 4

Stack Overflow用户

发布于 2011-12-20 05:20:15

只需通过执行以下操作来禁用应用程序中的ubuntu覆盖滚动条:

代码语言:javascript
复制
putenv("LIBOVERLAY_SCROLLBAR=0");

不是很理想,但在你找到更持久的解决方案之前,这是一个很好的选择。或者只需等待Ubuntu禁用覆盖滚动条...

票数 2
EN

Stack Overflow用户

发布于 2011-12-22 18:08:55

我会添加代码来挖掘当前/默认样式信息,使用这些信息来计算字体基线高度,然后根据这些信息计算一些粗略的大小分配,大约在您提到的三行左右。

票数 0
EN

Stack Overflow用户

发布于 2012-02-11 23:23:48

它必须是一个文本视图吗?如果可以使用eventbox,那么可以从它创建一个cairo图面,使用pango呈现文本,然后使用pango_layout_get_size()获取文本高度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8482505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档