It's all about packing order. You were placing the labels over the top of each other. Try this:
#!/usr/bin/perl -w
use strict;
use strict;
use warnings;
use Tk;
use Tk::DialogBox;
my $main_window = MainWindow -> new();
$main_window -> bind ( "<Control-Key-c>" , \&add_client ) ; # Ctrl c
MainLoop;
sub add_client {
my $add_client_win = $main_window -> DialogBox (
-title => 'Ajouter un client' ,
-buttons => [ 'Valider' , 'Annuler' ]
);
# BUG HERE BUG HERE BUG HERE BUG HERE BUG HERE BUG HERE BUG HERE
my $firstname_line = $add_client_win -> add ( 'Label' ,
-height => '5',
-text => 'Some text',
-font => 'Helvetica 10 bold' ,
) -> grid(
#-side => 'top' ,
#-fill => 'x'
);
# END BUG END BUG END BUG END BUG END BUG END BUG END BUG END BUG
# -- CANTON --
my $canton_line = $add_client_win -> add ( 'Label' ,
-height => '5'
) -> grid(
#-side => 'top' ,
#-fill => 'x'
);
my $label_canton = $canton_line -> Label (
-font => 'Helvetica 10 bold' ,
-text => 'Localisation :',
-padx => '10' ,
-pady => '5'
) -> pack (
-side => 'left'
);
my ($canton_data, $canton_display );
my $canton_choice = $canton_line -> Optionmenu(
-options => [
[ 'Genève' => '000' ] ,
[ 'Vaud' => '100' ] ,
[ ' - Chablais vaudois' => '110' ] ,
[ ' - Lausanne' => '120' ] ,
[ ' - Montreux-Vevey' => '130' ] ,
[ ' - Morges' => '140' ] ,
[ ' - Nyon' => '150' ] ,
[ ' - Yverdon' => '160' ] ,
[ ' - Arc lémanique' => '170' ] ,
[ 'Valais' => '200' ] ,
[ ' - Chablais valaisan' => '210' ] ,
[ ' - Bas Valais' => '220' ] ,
[ ' - Haut Valais' => '230' ] ,
[ 'Fribourg' => '400' ] ,
[ 'France voisine' => '500' ] ,
[ 'Paris' => '600' ] ,
[ 'Cote d Azur' => '700' ] ,
[ 'Italie' => '800' ] ,
] ,
-command => sub { } ,
-variable => \$canton_data ,
-textvariable => \$canton_display
) -> pack(
-side => 'right' ,
);
my $reponse = $add_client_win -> Show ( ) ;
}
By using the
grid geometry manager they are placed vertically in order in a grid.
jdtoronto