python 防止调整ListBoxItems的大小(特别是收缩)

nkhmeac6  于 2023-02-11  发布在  Python
关注(0)|答案(1)|浏览(146)

我有一个Gtk列表框,我添加了大量的项目(基本上是文本标签)。我已经把列表框内的滚动窗口,但如果我添加太多的项目,然后每个项目的高度会降低,直到标签上的文本不再可读。
如何防止ListBox项在添加更多项时高度减小?
我用来创建ListBox和添加条目的代码如下所示:

# Add the listbox
self.test_list_window = Gtk.ScrolledWindow();
self.test_list = Gtk.ListBox()
self.test_list.connect("row_activated", some_method)
self.test_list_window.add(self.test_list)

项目的添加是用这个方法完成的(每个ListBox项目都有一个LHS和RHS标签)。我以为set_size_request会给ListBox条目添加一个最小大小,但它似乎没有这样做(同样,设置一个以像素为单位的特定高度感觉像是错误的答案,我只是想防止行缩小)。

def add_list_box_entry(self, lhs, rhs, lbox, set_min_size=False):
        box = Gtk.Box()
        if set_min_size:
            box.set_size_request(10, 10)
        box.pack_start(Gtk.Label(label=lhs, xalign=0), True, True, 1)
        lab = Gtk.Label(label=f'({rhs})')
        lab.set_halign(0.95)
        box.pack_start(lab,False, True, 5)
        lbox.add(box)
icnyk63a

icnyk63a1#

要解决此问题,您需要在添加项目后对列表框调用show_all()。
如果你不这样做,列表框中会有一个垂直方向的小条目,可以点击它,但不会显示它所包含的小部件,因此会给予人一种项目从正常高度缩小的印象。

相关问题