Gtk Widget add_child失败并出现错误

时间:2017-04-24 01:15:08

标签: python-2.7 gtk3 gtkentry

我正在尝试创建自定义Gtk文本条目。基本思想是在文本条目中放置一个按钮。这是我的完整代码的缩短版本:

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
builder = Gtk.Builder()
button = Gtk.Button('button')
entry = Gtk.Entry()
entry.add_child(builder, button, "button")

该按钮未显示,但失败并显示错误:

(pygtk_foobar.py:26622): Gtk-CRITICAL **: gtk_buildable_add_child: 
assertion 'iface->add_child != NULL' failed

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

GtkEntry窗口小部件不是GtkContainer,因此无法添加或移除子窗口小部件。

只有从GtkContainer类继承的小部件才能在GTK +中拥有子级。

如果要在文本条目旁边放置一个按钮,则应将两个小部件打包到GtkBox之类的容器中,例如:

box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=2)
entry = Gtk.Entry()
button = Gtk.Button(label='button', hexpand=True)
box.add(entry)
box.add(button)
box.show_all()

这将创建一个带有条目和按钮的框。