【问题标题】:Prevent ListBoxItems from being resized (specifically shrunk)防止 ListBoxItems 被调整大小(特别是缩小)
【发布时间】: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)

【问题讨论】:

    标签: python gtk3 pygtk


    【解决方案1】:

    要解决此问题,您需要在添加项目后对列表框调用 show_all()。

    如果您不这样做,您添加的每个项目的列表框中都会有一个垂直的小条目。可以单击它,但不会显示它包含的小部件,因此给人的印象是这些项目已从其正常高度缩小。

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      相关资源
      最近更新 更多