This is an archive copy of wikilivres.ca as of 18 February 2017 (from the WikiTeam dump). The original site is closed.

Page:Swinnen - Apprendre Python, 2010.djvu/126

Free texts and images.
Jump to navigation Jump to search
This page has been proofread


104
Chapitre 8 — Utilisation de fenêtres et de graphismes


Pour obtenir une vraie référence du widget, vous devez obligatoirement utiliser deux instructions :


entree = Entry(fen1) # instanciation du widget
entree.pack() # application de la mise en page


Lorsque vous utilisez la méthode grid(), vous pouvez simplifier encore un peu votre code, en omettant l’indication de nombreux numéros de lignes et de colonnes. À partir du moment où c’est la la méthode grid()qui est utilisée pour positionner les widgets, tkinter considère en effet qu’il existe forcément des lignes et des colonnes[1]. Si un numéro de ligne ou de colonne n’est pas indiqué, le widget correspondant est placé dans la première case vide disponible.



Exercices

Le script ci-dessous intègre les simplifications que nous venons d’expliquer :


from Tkinter import *
fen1 = Tk()

  1. création de widgets Label(), Entry(), et Checkbutton() :

Label(fen1, text = 'Premier champ :').grid(sticky =E)
Label(fen1, text = 'Second :').grid(sticky =E)
Label(fen1, text = 'Troisième :').grid(sticky =E)
entr1 = Entry(fen1)
entr2 = Entry(fen1) # ces widgets devront certainement
entr3 = Entry(fen1) # être référencés plus loin :
entr1.grid(row =0, column =1) # il faut donc les assigner chacun
entr2.grid(row =1, column =1) # à une variable distincte
entr3.grid(row =2, column =1)
chek1 = Checkbutton(fen1, text ='Case à cocher, pour voir')
chek1.grid(columnspan =2)

  1. création d'un widget 'Canvas' contenant une image bitmap :

can1 = Canvas(fen1, width =160, height =160, bg ='white')
photo = PhotoImage(file ='Martin_P.gif')
can1.create_image(80,80, image =photo)
can1.grid(row =0, column =2, rowspan =4, padx =10, pady =5)

  1. démarrage :

fen1.mainloop()

  1. ↑ Surtout, n’utilisez pas plusieurs méthodes de positionnement différentes dans la même fenêtre ! Les méthodes grid(), pack() et place() sont mutuellement exclusives.