5.1 Theory of Packing Boxes

Most packing is done by creating boxes. These are invisible widget containers that we can pack our widgets into which come in two forms, a horizontal box, and a vertical box. When packing widgets into a horizontal box, the objects are inserted horizontally from left to right or right to left, depending on the call used. In a vertical box, widgets are packed from top to bottom or vice versa, again depeinding on the call used. You may use a combination of boxes inside boxes or beside other boxes to create the desired effect.

To create a new horizontal box, we use a call to Gtk::HBox.new, and for vertical boxes, Gtk::VBox.new. The pack_start and pack_end methods are used to place objects inside of these containers. The pack_start method will start at the top and work its way down in a vbox, and pack left to right in an hbox. pack_end will do the opposite, packing from bottom to top in a vbox, and right to left in an hbox. Using these methods allows us to justify our widgets and may be mixed in any way to acheive the desired effect. We will use pack_start in most of our examples. An object may be another container or a widget. In fact, many widgets are actually conatianers themselves, including the button, but we usually only use a label inside a button.

By using these calls, GTK knows where you want to place your widgets so it can do automatic resizing and other nifty things. There are also a number of options as to how your widgets should be packed. As you can imagine, this method gives us a quite a bit of flexibility when placing and creating widgets.


Prev Next