Problem
You want to left or right align GtkLabel in GtkWindow as shown below:
Solution
Align the label using GtkMisc::set_alignment()
$label->set_alignment(.5,0); // centered $label->set_alignment(0,0); // left align $label->set_alignment(1,0); // right align
Sample Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?php $window = new GtkWindow(); $window->set_size_request(400, 100); $window->set_border_width(6); $window->modify_bg(Gtk::STATE_NORMAL, GdkColor::parse("#B2D2DE")); $window->connect_simple('destroy', array('Gtk','main_quit')); // Creates a vbox to hold the 3 labels $vbox = new GtkVBox; // Label 1 - default (centered) $label = new GtkLabel('this is centered'); $label->set_alignment(.5,0); $vbox->pack_start($label); // label 2 - left aligned $label = new GtkLabel('this is left aligned'); $label->set_alignment(0,0); $vbox->pack_start($label); // label 3 - right aligned $label = new GtkLabel('this is right aligned'); $label->set_alignment(1,0); $vbox->pack_start($label); $window->add($vbox); $window->show_all(); Gtk::main(); ?> |
Output
As shown above.Explanation
set_alignment(double xalign, double yalign)
sets the alignment of the label.
The x-align
is a floating point number from 0.0 to 1.0.
- 0.0 = left
- 1.0 = right
- 0.5 = centered
- Of course you can specify another other floating point in between e.g. 0.1 will leave a small gap on the left.
The same applies to y-align
, except it does vertical alignment.
Read more...