007. How to left or right align GtkLabel in GtkWindow?

Problem

You want to left or right align GtkLabel in GtkWindow as shown below:

How to left or right align GtkLabel in GtkWindow?


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.

Add comment


Security code
Refresh