public class Box : Widget, Accessible, Buildable, ConstraintTarget, Orientable
The `GtkBox` widget arranges child widgets into a single row or column.
![An example GtkBox](box.png)
Whether it is a row or column depends on the value of its [property@Gtk.Orientable:orientation] property. Within the other dimension, all children are allocated the same size. Of course, the [property@Gtk.Widget:halign] and [property@Gtk.Widget:valign] properties can be used on the children to influence their allocation.
Use repeated calls to [method@Gtk.Box.append] to pack widgets into a `GtkBox` from start to end. Use [method@Gtk.Box.remove] to remove widgets from the `GtkBox`. [method@Gtk.Box.insert_child_after] can be used to add a child at a particular position.
Use [method@Gtk.Box.set_homogeneous] to specify whether or not all children of the `GtkBox` are forced to get the same amount of space.
Use [method@Gtk.Box.set_spacing] to determine how much space will be minimally placed between all children in the `GtkBox`. Note that spacing is added *between* the children.
Use [method@Gtk.Box.reorder_child_after] to move a child to a different place in the box.
`GtkBox` uses a single CSS node with name box.
Until GTK 4.10, `GtkBox` used the `GTK_ACCESSIBLE_ROLE_GROUP` role.
Starting from GTK 4.12, `GtkBox` uses the `GTK_ACCESSIBLE_ROLE_GENERIC` role.