OVH Cloud OVH Cloud

Menue Perl/Tk

2 réponses
Avatar
midtownmadnes52
Bonjour,
J'ai un petit probleme avec perl tk, je veux faire des menue. jusque la c'est ok.

#menu fichier
$txt_menu_fichier=$menu_haut->Menubutton(-text=>'Fichier',
-background=>'#CCCCCC',
-activebackground=>'#C0C0C0',
-foreground=>'#000000',)
->pack('-side'=>'left');

cela affiche mon bouton fichier corectement,
mais quand je rajoute

#sous-menue de fichier
$txt_menu_fichier->command(label=>'Sauvegarder',
-activebackground=>'groove',
-command=>\&test);
$txt_menu_fichier->separator();

pour avoir un sous menue, ca ne fonctionne plus:(

quelqu'un peu maider svp.

2 réponses

Avatar
jeanpierre.vidal
(Tommy Jean) wrote in message news:...
Bonjour,
J'ai un petit probleme avec perl tk, je veux faire des menue. jusque la c'est ok.

#menu fichier
$txt_menu_fichier=$menu_haut->Menubutton(-text=>'Fichier',
-background=>'#CCCCCC',
-activebackground=>'#C0C0C0',
-foreground=>'#000000',)
->pack('-side'=>'left');


pas besoin de "quoter" -side, l'opérateur => s'en charge :
pack(-side=>'left') et pack('-side', 'left') sont équivalents (si j'ai
bien tout compris)


cela affiche mon bouton fichier corectement,
mais quand je rajoute

#sous-menue de fichier
$txt_menu_fichier->command(label=>'Sauvegarder',
-activebackground=>'groove',
-command=>&test);
$txt_menu_fichier->separator();

pour avoir un sous menue, ca ne fonctionne plus:(

quelqu'un peu maider svp.


Bon je n'ai jamais utilisé Menubutton, faudra que j'aille y faire un
tour, en attendant voici comment je ferais (TIMTOWTDI) :

#!perl -w
use strict;
use Tk;

my $top = new MainWindow;

my $menubar = $top->Menu(-type => 'menubar');
$top->configure(-menu => $menubar);

my $menu_fichier = $menubar->cascade(-label => '~Fichier', -tearoff
=> 0);

$menu_fichier->command(-label => '~Nouveau', -command =>
&Fichier_Nouveau);
sub Fichier_Nouveau {
#...
}

$menu_fichier->command(-label => '~Ouvrir', -command =>
&Fichier_Ouvrir);
sub Fichier_Ouvrir {
#...
}

$menu_fichier->separator;

$menu_fichier->command(-label => '~Quitter', -command => sub {
$top->destroy });

my $menu_edit = $menubar->cascade(etc. etc.

MainLoop;


Jean-Pierre

Avatar
jeanpierre.vidal
(Tommy Jean) wrote in message news:...
Bonjour,
J'ai un petit probleme avec perl tk, je veux faire des menue. jusque la c'est ok.

#menu fichier
$txt_menu_fichier=$menu_haut->Menubutton(-text=>'Fichier',
-background=>'#CCCCCC',
-activebackground=>'#C0C0C0',
-foreground=>'#000000',)
->pack('-side'=>'left');

cela affiche mon bouton fichier corectement,
mais quand je rajoute

#sous-menue de fichier
$txt_menu_fichier->command(label=>'Sauvegarder',
-activebackground=>'groove',
-command=>&test);
$txt_menu_fichier->separator();

pour avoir un sous menue, ca ne fonctionne plus:(

quelqu'un peu maider svp.


J'apprends tous les jours, et justement je cherchais un menu
"détachable" :)
Voici donc un exemple avec Menubutton :

#!perl -w
use strict;
use Tk;

my $top = new MainWindow;

my $mbtn = $top->Menubutton(-text=>'Fichier')->pack;

my $menu = $mbtn->Menu(-type => 'normal');

$menu->command(-label => 'Nouveau', -command => &Fichier_Nouveau);
sub Fichier_Nouveau {
#...
}

$menu->command(-label => 'Ouvrir', -command => &Fichier_Ouvrir);
sub Fichier_Ouvrir {
#...
}

$menu->separator;

$menu->command(-label => 'Quitter', -command => sub { $top->destroy
});

$mbtn->configure(-menu => $menu);

MainLoop;

En fait il fallait créer un Tk::Menu qui soit le fils du
Tk::Menubutton, et le rattacher à l'option "-menu" de ce dernier.

Jean-Pierre