我在python中使用GTK + 3制作了以下GUI:
Gtk.Window.__init__(self, title="File Manager")
self.set_size_request(800, 600)
self.set_position(Gtk.WindowPosition.CENTER)
vertical_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.add(vertical_box)
menu_bar = create_menu_bar()
vertical_box.pack_start(menu_bar, False, False, 0)
tool_bar = create_tool_bar()
vertical_box.pack_start(tool_bar, False, False, 0)
horizontal_box = Gtk.Box()
vertical_box.pack_start(horizontal_box, False, True, 0)
side_bar = create_side_bar()
horizontal_box.pack_start(side_bar, False, False, 0)
horizontal_box.set_halign(1.0)
list_view = create_list_view()
horizontal_box.pack_start(list_view, True, True, 0)
它基本上是一个文件管理器。问题是list_view中的项目占用了所需的最小空间。如下图所示:
在第一张图片中,列表占据了整个屏幕的空间,但仍然在尺寸列附近有一个白色边框。
在第二张图片中,即使侧边栏尺寸减小,列表中的项目也会减少。
补充工具栏的大小是list_view,如何避免这种情况?
如何正确格式化我的gui,如何为list_view的列提供适当的填充和间距?
答案 0 :(得分:0)
首先,您应该将hexpand和vexpand直接设置为list_view
:
list_view.set_hexpand (True)
list_view.set_vexpand (True)
第二:set_halign和set_valign不需要数字,而是枚举值:
horizontal_box.set_halign(Gtk.Align.FILL)
关于列宽:GtkTreeViewColumn有一堆控制大小调整的方法:
set_sizing
set_resizable
set_fixed_width
set_min_width
set_max_width