【发布时间】:2023-02-10 17:00:02
【问题描述】:
我有一个 Gtk 列表框,我要向其中添加大量项目(基本上是文本标签)。我已将 ListBox 放在 ScrolledWindow 中,但如果我添加太多项目,则每个项目的高度都会降低,直到标签上的文本不再可读。
当我添加更多列表框项目时,如何防止其高度降低?
我用来创建 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)
【问题讨论】: