【发布时间】:2023-08-11 16:29:01
【问题描述】:
我正在尝试将一些文本添加到 pygtk 的滚动窗口中。 textview 包装在一个简单的盒子容器中。我在网上搜索并知道我需要先添加一个视口才能使其正常工作,但我不断收到以下错误:
Gtk-CRITICAL **: gtk_viewport_add: assertion 'gtk_bin_get_child (bin) == NULL' failed
这是我的代码:
container = Gtk.Box()
container.set_name('text_container')
tv = Gtk.TextView()
text_input = self.builder.get_object('entry1')
text = text_input.get_text()
text_input.set_text('')
tv.get_buffer().set_text(text)
container.pack_start(tv,True,True,0)
self.viewport.add(container)
我采用了这种方法,因为我已经在我的“glade”文件中的滚动窗口中添加了一个视口。欢迎任何帮助或在线资源。
【问题讨论】:
-
您是否尝试过直接将 TextView 添加到 ScrolledWindow 中?这就是我在我的一个脚本中使用它的方式。
-
@SiHa 是的,我做到了并且有效,但它不符合我的要求。这是一个简单的聊天窗口,我想将每条消息打包到一个容器中,就像我们在 html 中使用/ 一样。此外,我将它打包在一个盒子里,因为我想在它上面应用我的自定义 CSS,正如这里 link 解释的那样,使用 .set_name('mywindow') 作为 id 选择器。啊。那么下面的答案有帮助吗?你不能实例化
Gtk.Box,它是抽象的。而是选择Gtk.VBox或Gtk.HBox之一。
标签: python linux gtk pygtk glade