Tickit::Widget::VBox - distribute child widgets in a vertical column


   use Tickit;
   use Tickit::Widget::VBox;
   use Tickit::Widget::Static;

   my $vbox = Tickit::Widget::VBox->new;

   foreach my $position (qw( top middle bottom )) {
            text   => $position,
            align  => "centre",
            valign => $position,
         expand => 1

   Tickit->new( root => $vbox )->run;


This subclass of Tickit::Widget::LinearBox distributes its children in a vertical column. Its width will be the width of the widest child, and its height will be the sum of the heights of all the children, plus the inter-child spacing.

Optionally, if given a non-zero spacing between child widgets and a style to draw in, a horizontal dividing line will be drawn between each child.


The default style pen is used as the widget pen. The following style pen prefixes are also used:

line => PEN

Since version 0.52.

The pen used to render a dividing line between child widgets.

Note that while the widget pen is mutable and changes to it will result in immediate redrawing, any changes made will be lost if the widget style is changed.

The following style keys are used:

spacing => INT

The number of lines of spacing between children

line_style => INT

Since version 0.52.

If set, the style to draw a dividing line between each child widget. Must be one of the LINE_* constants from Tickit::RenderBuffer.


Paul Evans <>