我有一个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)
1条答案
按热度按时间icnyk63a1#
要解决此问题,您需要在添加项目后对列表框调用show_all()。
如果你不这样做,列表框中会有一个垂直方向的小条目,可以点击它,但不会显示它所包含的小部件,因此会给予人一种项目从正常高度缩小的印象。