我正在尝试制作一个类似于 Gtk 在所有类似 TreeView 的小部件上使用的“快速搜索”条目的自定义小部件。
这是我最初想法的简化示例:
from gi.repository import Gtk
class QuickSearch(Gtk.Bin):
def __init__(self, *args, **kwargs):
super(QuickSearch, self).__init__(*args, **kwargs)
self.add(Gtk.Entry())
win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
search = QuickSearch()
win.add(search)
win.show_all()
Gtk.main()
问题如下:
- 如果我单独使用它,就像在这个例子中一样,似乎有空间分配给自定义小部件,但
GtkEntry
屏幕上没有显示。我尝试了和自定义小部件(hexpand、vexpand、边距、对齐等)的各种属性组合,GtkEntry
但无济于事。 - 如果与其他小部件结合使用,当我交互式查询小部件分配的高度时,它显然是 1。在屏幕上,小部件实际上不会出现(因为它在其他小部件之间有点“挤压”)。
那么,我在对象初始化或我如何使用这个自定义小部件时缺少一些东西?这是特定于 的问题GtkBin
吗?我尝试用 a 做同样的事情,GtkBox
并且完美无缺,但我认为GtkBin
更适合这个特定的小部件。