Hello World - Tutoriel Perl/Tk - de Bin-Co traduit en Français

alain Adelmar
aadelmar@numericable.fr beuuh c est quoi ca

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();

Dans ce cas,  pack n'a pas d'options à l'interieur. Mais ce n'est pas toujours le cas.

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.

Maintenant, les puritains de Perl soulèverons un tollé et dire que ce n'est pas le moyen d'imprimer "Bonjour tout le monde". La "pure" la méthode est la suivante ...

#!/usr/local/bin/perl
print "Hello World"

Mettre les choses en perspective, je suis professeur de Perl / Tk - pas Perl. Le ci-dessus est la méthode de Perl de le faire. Ma méthode est la méthode de faire de PTK.


Previous
Contents 
Next
Button, Entry, Label 
Contents