6

我正在用Python + Gtk3编写一个小应用程序。我使用的是GtkGrid一列两行的。

在第一行中,我放了: a GtkScrolledWindow,其中 aTreeView有两列。

在第二行中,我放了: a ButtonBox,在其中 a GtkButton, aComboBox和 another GtkButton

问题是:第二行(底部有按钮)在按钮上方和下方有太多空间,那么我该如何设置该单元格的高度以匹配按钮的高度,而不会“浪费”上方的空间和下面?

代码在这里,这是我的程序的屏幕截图:

在此处输入图像描述

4

1 回答 1

14

您正在为列和行创建具有均匀间距的 GtkGrid;这意味着您的列和行将接收相同的大小,这是所有列和行之间的最大自然大小。

创建网格时,删除该row_homogeneous=True属性。如果你想让 TreeView 展开,你应该在它上面设置hexpandvexpand属性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 那样具有打包属性。

于 2013-03-27T19:52:54.507 回答