Ce tutorial est de Bin-Co, je l'ai juste traduis et pour pas le garder que pour moi je le met en ligne. Ce document est donc non officiel.
Commençons donc, comme tous les autres tutoriels commence, avec le "Hello World» du programme. Crééez un fichier appelé " Hello.pl" et entrez le texte suivant dedans.
#!/usr/local/bin/perl
use Tk;
# Main Window
my $mw = new MainWindow;
my $label = $mw -> Label(-text=>"Hello World") -> pack();
my $button = $mw -> Button(-text => "Quit",
-command => sub { exit })
-> pack();
MainLoop;
La première ligne - #!/usr/local/bin/perl
n'est
pas nessecaire sur Windows. Dans Linux, elle donne le nom de langage du
script processeur.
Dans notre cas c'est perl. Vous ne comprenez pas ce que cela signifie?
c'est pas grave, laissez glisser. Mettez juste cette ligne au
debut du fichier.
La seconde ligne - use Tk;
dit à
l'interpréteur que notre programme utilisera le module Tk.
Cette
ligne est une nécessité absolue dans tout les GUI (
applications graphiques )
que vous effectuez en utilisant perl. Lorsque l'interprète
rencontre cette ligne, il chargera l'élément Tk que nous
allons
utiliser pour créer notre programme.
La troisième ligne - C'est un commentaire. Toute les lignes
commencant par un carractère '#
' (
diéze) sont des
commantaires. Les
commentaires ne sont d'aucune utilité dans le programme. Ils
sont justes utilisés par les programmeurs pour se parler
à eux-mêmes. Un
programmeur ne peut pas envisager de se rappeler tout ce que fait un
script. Il utilise donc des commentaires pour l'écrire. Ensuite,
il édite le script, et peut lire le commentaire et de comprendre
ce que
le programme doit faire. Il est bon de faire autant de commentaires que
possible.
La ligne quatre, my $mw = new MainWindow;
, va
créer une fenêtre dans laquelle les éléments
de l'interface graphique
seront placés. La variable $mw
est un objet de
type 'MainWindow'. Nous
aurons à utiliser cet élément lorsque nous
voudrons
placer quelque widget à
l'intérieur.
La ligne cinq - $mw -> Label(-text=>"Hello World")
-> pack();
, fait
un label et écrit: "Bonjour le monde" dedans. Vous pouvez
modifier le
texte en ce que vous voulez. Note la structure de
la commande -
$label
-Cette
variable attribuée à ce widget particulier. Chaque widget
doit avoir une variable UNIQUE. Ce nom sera utilisé à
chaque fois que le widget qui doit être
consultée.
$mw ->
- $mw est l'objet de MainWindow. Nous
placerons notre label widget dans cette fenêtre.
Label(-text=>"Hello World")
- 'Label' est le nom du
widget. Un
widget est un objet d'interface utilisateur dans les interfaces
utilisateur graphique X. Confus? Permet de dire que c'est le nom de
l'objet qui apparaît sur l'écran. Il ya beaucoup d'autres
widgets (gadgets)
aussi. Si vous souhaitez afficher un bouton,
vous utilisez le button
widget
. Pour le texte,
vous utilisez le text widget
. Pour
l'entrée,
vous l'avez deviné, l' entry widget
. Si vous le
souhaitez, vous pouvez
en savoir plus sur les
widgets.
-text=>"Hello World"
- L'option pour ce widget.
Cette option dit que ce widget doit donner le texte "Hello World". Les
options changent selon les widgets - un button widget n'aura pas toutes
les options d'un label widget et vise versa. Mais ils en aurons
plusieurs en commun.
Notez s'il vous plait que l'opérateur utilisé ici est
'=>' par opposition à celle utilisée
précédemment '->' dans $mw ->
. L'un
utilise le signe moins (-
), tandis que l'autre utilise le
signe égale (=
) . Ne pas les confondre.
Vous pouvez continuer à écrire d'autres options qui
pourront également être
écrites ici. Par exemple, nous faisons une étiquette pour
afficher le
texte "Hello World". Les autres lignes sont les mêmes que
pour le programme "Hello World".
$mw -> Label(-text=>"Hello
World",-font=>"courierfont",-relief=>"raised") -> pack();
Dans cet exemple, nombreuses options en plus sont utilisées.
L'option font est utilisé pour dire quelle font doit être
utilisé pour faire le texte et l'option relief indique
si le texte doit apparaître soulevé(raised
),
submergé(sunken)
, plat(flat
) etc...
Pour connaître
toutes les options pour un widget particulier, lire le manuel qui est
fourni avec
Perl. Il répertorie tous les gadgets et toutes les options dont
ils
disposent. Si vous programmer en Perl, vous trouverez votre propre
séléction dans le manuel en quelques minutes. Le plus
important et le
plus couramment utilisé options sont
énumérées
ici.
Toutes les options doivent être séparés par une virgule. Mais comme vous avez pu noter, cette ligne est un peu difficile à lire. Plus le nombre d'options augmente, plus il est difficile à lire. Alors la plus lisible des versions est...
$mw -> Label(-text=>"Hello World",
-font=>"courierfont",
-relief=>"raised")
-> pack();
A la suite viens le -> pack();
. Ceci empaquetera
(pack) le widget '$label
' dans la fenêtre '$mw
'.
'pack
' est un
gestionnaire de géométrie. Un autre gestionnaire de
géométrie est 'grid
'. Personnellement,
j'aime mieux 'grid'(la grille). Une fois de plus,
mettre tout cela en une seule ligne est douloureux pour les yeux -
Aussi pour vous
permettre de mettre cette partie dans la ligne suivante.
my $label = $mw -> Label(-text=>"Hello World")
-> pack();
my $label = $mw -> Label(-text=>"Hello World")
-> pack(-side=>"left",
-anchor=>'w');
Vous n'avez pas à emballer le widget dans la même ligne que vous le créé - mais il est pratique dans de petits programmes. Vous pouvez emballer le widget plus tard en utilisant la variable du widget. Par exemple ...
my $label = $mw -> Label(-text=>"Hello World"); #We created the widget
$label -> pack(-side=>"left", -anchor=>'w'); #We pack it in another line
Nous avons donc la syntaxe finale de comment la créer et
d'afficher un widget ...
my $WidgetVariable = $Window -> WidgetType(?Option 1=>Value
1, ?Option 2=>Value 2 ...??) -> pack();
Les trois lignes suivantes...
my $button = $mw -> Button(-text => "Quit",
-command => sub { exit })
-> pack();
créerons et afficherons un bouton. Ici la variable widget est '$button'. Quand nous regardons les options, nous trouvons deux options - 'text' et 'command'. Le texte donné est Quit - alors le bouton aura le texte "Quit" en lui. L'option de commande détermine qu'arrivera t'il quand l'utilisateur cliquera sur le bouton. Vous pouvez spécifier une fonction à éxecuter quand l'utilisateur cliquera sur le bouton. Dans le cas ou le programme quittera quand le bouton sera pressé. On peut aussi appeler des fonctions que vous avez créé à partir d'ici ...
#!/usr/local/bin/perl
use Tk;
# Main Window
my $mw = new MainWindow;
my $label = $mw -> Label(-text=>"Hello World") -> pack();
my $button = $mw -> Button(-text => "Quit",
-command =>\&exitProgam)
-> pack();
MainLoop;
sub exitProgam {
$mw->messageBox(-message=>"Goodbye");
exit;
}
La ligne suivante - MainLoop;
est
la boucle principale (Main Loop)ou la boucle d'événement
(Event
Loop). Son travail consiste
à invoquer callbacks en réponse à des
événements tels qu'un bouton pressé ou l'heure de
l'expiration. Si cette ligne est manquante, le
programme se déroulera avec la sortie et d'attente pour
l'utilisateur
de faire toute chose. Ceci est une autre de ces «musts
absolus» de Perl
/ Tk de programmation.
#!/usr/local/bin/perl
print "Hello World"