我正在使用 Python + Gtk3 编写一个小应用程序。我正在使用一个列和两行的GtkGrid
。
在第一行中我添加了GtkScrolledWindow
,其中包含两列TreeView
。
在第二行中我添加了ButtonBox
,其中包含GtkButton
,ComboBox
和另一个GtkButton
。
问题是:第二行(带按钮的底部)在按钮上方和下方有太多空间,所以我该怎么做才能设置该单元格的高度以匹配高度按钮,上面和下面没有“浪费”空间?
代码为here,这是我程序的屏幕截图:
答案 0 :(得分:8)
你正在为列和行创建具有均匀间距的GtkGrid;这意味着您的列和行将获得相同的大小,这是所有列和行之间的最大自然大小。
创建网格时,请删除row_homogeneous=True
属性。如果您希望TreeView扩展,您应该将hexpand
和vexpand
属性设置为True
,即:
# creamos una grilla
self.grid = Gtk.Grid(column_homogeneous=True,
column_spacing=10,
row_spacing=10)
[...]
# creamos el TreeView
self.treeview = Gtk.TreeView(model=self.liststore)
# set the TreeView to expand both horizontally and vertically
self.treeview.set_hexpand(True)
self.treeview.set_vexpand(True)
GtkGrid是一个容器和布局管理器,它尊重GtkWidget上的水平和垂直扩展和对齐标志,而不是像GtkBox或GtkTable那样具有打包属性。