Différences entre les versions de « Programmation Python/Utilisation de fenêtres et de graphismes »

[[Image:Apprendre à programmer avec Python 18.png|right|200px]]
 
Le script décrit ci-dessous crée une fenêtre comportant trois boutons et un ''canevas''. Suivant la terminologie de ''Tkinter'', un canevas est une surface rectangulaire délimitée, dans laquelle on peut installer ensuite divers dessins et images à l'aide de méthodes spécifiques<ref>Ces dessins pourront éventuellement être animés dans une phase ultérieure (voir plus loin)</ref>.
 
Lorsque l'on actionne le bouton « Tracer une ligne », une nouvelle ligne colorée apparaît sur le canevas, avec à chaque fois une inclinaison différente de la précédente.
L'initialisation se termine avec l'instruction <code>fen1.mainloop()</code> qui démarre le réceptionnaire d'événements. Les instructions qui suivent ne seront exécutées qu'à la sortie de cette boucle, sortie elle-même déclenchée par la méthode <code>fen1.quit()</code> (voir ci-après).
 
L'option <code>command</code> utilisée dans l'instruction d'instanciation des boutons permet de désigner la fonction qui devra être appelée lorsqu'un événement « clic gauche de la souris sur le ''widget'' » se produira. Il s'agit en fait d'un raccourci pour cet événement particulier, qui vous est proposé par ''Tkinter'' pour votre facilité parce que cet événement est celui que l'on associe naturellement à un ''widget'' de type bouton. Nous verrons plus loin qu'il existe d'autres techniques plus générales pour associer n'importe quel type d'événement à n'importe quel ''widget''.
 
Les fonctions de ce script peuvent modifier les valeurs de certaines variables qui ont été définies au niveau principal du programme. Cela est rendu possible grâce à l'instruction global utilisée dans la définition de ces fonctions. Nous nous permettrons de procéder ainsi pendant quelque temps encore (ne serait-ce que pour vous habituer à distinguer les comportements des variables locales et globales), mais comme vous le comprendrez plus loin, cette pratique n'est pas tout à fait recommandable, surtout lorsqu'il s'agit d'écrire de grands programmes. Nous apprendrons une meilleure technique lorsque nous aborderons l'étude des classes.
 
Dans notre fonction <code>changecolor()</code>, une couleur est choisie au hasard dans une liste. Nous utilisons pour ce faire la fonction <code>randrange()</code> importée du module ''random''. Appelée avec un argument N, cette fonction renvoie un nombre entier, tiré au hasard entre zéro et N-1.