有没有办法在 GTK 窗口中设置 TextView 小部件的尺寸,该窗口已经包含一些使用固定容器的其他小部件?

问题描述 投票:0回答:1

我正在编写一个 GTK-3 应用程序,其中有一些按钮和一个 TreeView 模型。我已使用固定容器将所有这些小部件添加到主 GTK 窗口中。现在我想要窗口的固定部分,我可以在其中输入多行文本。为此,我使用了 TextView 小部件,并再次使用固定容器将其添加到主窗口。现在我的问题是,当我以这种方式编写应用程序时,我确实在屏幕上得到了一个 TextView 小部件(上面有我使用

gtk_text_buffer_insert()
设置的文本),但是这个 Textview 的尺寸与需要适应已经存在的文本。如果我输入更多文本,那么 Textview 的大小就会增加。

截图

取而代之的是,我想要某种方法来修复 TextView 的尺寸,这样无论有多少文本,窗口上都会有最小的空间专用于它,并且 TextView 在那里可见。我还希望,如果在 textView 中插入了更多文本(超过了可以容纳的文本),那么它应该可以使用滚动条进行访问。如何做到这一点?

我在这里找到了类似问题的答案,https://stackoverflow.com/a/48339773/9244482,但它是关于Python的。我检查了 GTK-3.20 文档,但找不到该答案中建议的

textview.set_size_request ()
函数的等效项。我确实在文档中找到了一个名为
gtk_text_view_set_border_window_size ()
的函数,但它只是用边框填充 TextView 小部件,并没有设置 TextView 本身的大小。我还在reddit https://www.reddit.com/r/GTK/comments/1229qdi/comment/jdsozjw/?utm_source=share&utm_medium=web2x&context=3上找到了答案,建议使用“height/width-request property” ”,但我无法在 GTK-3.20 文档中找到 TextView 的这个内容。

那么,如何使用 C 来准确修复 GTK 中 TextView 的尺寸呢?

c textview gtk gtk3
1个回答
0
投票

set-size-request 是小部件上的通用操作:

gtk_widget_set_size_request (widget, width, height);

这会将文本视图的大小限制为指定的像素值。 如果您不需要特定限制,请传递宽度或高度 -1。

但这听起来像你想要的:

gtk_widget_set_hexpand (widget, TRUE);
gtk_widget_set_vexpand (widget, TRUE);

如果你想要一个滚动条,就需要将其打包到一个滚动窗口中。

© www.soinside.com 2019 - 2024. All rights reserved.