理解包装的盒子

大多数控件的包装是创建盒子来完成的。它们是一种不可见的可以用来打包控件的控件容器,它有垂直和水平两种表现形式。当使用水平盒子时,根据方法的不同,对象可以从左到右或者有右到左垂直地插入。而对于垂直盒子而言,控件可以从上到下插入的,反之亦然。你可以组合使用不同的盒子来构造你需要的效果。

你可以用 Gtk::HBox.new 构造一个水平盒子,Gtk::VBox.new 构造一个垂直盒子。Gtk::Box#pack_start 和 Gtk::Box#pack_end 则用于把对象放置到这些容器里面. Gtk::Box#pack_start 在垂直盒子中从上到下放置,在水平盒子里面就从左到右放置。Gtk::Box#pack_end 则相反,在垂直盒子里面从下到上放置,在水平盒子里面从右到左放置。使用这些方法把我们的控件右对齐或者左对齐或者两者混合使用以达到我们的设计效果。我们大多数例子中都使用 Gtk::Box#pack_start。一个对象也可以是另一个容器或者控件。实际上,很多控件自己就包含了容器,包括按钮,我们经常在一个按钮里面使用的 label 就是一个控件。

通过这些方法,GTK 就知道如何来放置你的控件,以便能在缩放大小或者其它事情自动处理。对于如何放置控件,还有很多选择。你可以想象,这些方法给了我们多么大的灵活性来放置和创建控件。