#-*- coding: utf-8 -*- from Tkinter import * #------------------------------------------------------------------------------- def clic_button(num_button): lst_num_button[num_button].configure(bg = "grey") def Grille(fen,x,y): "Dessine la grille" #"lst_num_button" contient l'identifiant de chaque bouton (instance) global lst_num_button lst_num_button = [] i = 0 while i < x: j = 0 while j < y: b Button(fen,height 1, width = 2, #(i*x) + j = numéro du bouton de 0 a n command lambda num_button (i*x) + j: clic_button(num_button)) b.grid(row=i,column=j) lst_num_button.append(b) j+=1 i+=1 #------------------------------------------------------------------------------- root = Tk() Grille(root,25,25) root.mainloop()
#-*- coding: utf-8 -*- from Tkinter import * #------------------------------------------------------------------------------- def Grille(fen,x,y): def onClick(event): monitem = canvas.find_closest(canvas.canvasx(event.x), canvas.canvasy(event.y)) if canvas.itemcget(monitem, 'fill') == 'white': canvas.itemconfigure(monitem, fill='black') else: canvas.itemconfigure(monitem, fill='white') "Dessine la grille" taille_case=20 canvas Canvas(fen, widthx*taille_case+4, height=y*taille_case+4) i = 0 while i < x: j = 0 while j < y: canvas.create_rectangle((i*taille_case)+2,(j*taille_case)+2,((i+1)*taille_case)+2 , ((j+1)*taille_case)+2, fill='white') j+=1 i+=1 canvas.pack() canvas.bind('', onClick) #------------------------------------------------------------------------------- def Apercu(fen,x,y): "Dessine l'aperçu" taille_case=5 canvas Canvas(fen, widthx*taille_case+4, height=y*taille_case+4) i = 0 while i < x: j = 0 while j < y: canvas.create_rectangle((i*taille_case)+2,(j*taille_case)+2,((i+1)*taille_case)+2 , ((j+1)*taille_case)+2, outline='white',fill='white') j+=1 i+=1 canvas.pack() #------------------------------------------------------------------------------- root = Tk() Apercu(root,25,25) Grille(root,25,25) root.mainloop()
#-*- coding: utf-8 -*- from Tkinter import * #------------------------------------------------------------------------------- def Grille(fen,x,y): def onClick(event): monitem = canvas.find_closest(canvas.canvasx(event.x), canvas.canvasy(event.y)) print monitem if canvas.itemcget(monitem, 'fill') == 'white': canvas.itemconfigure(monitem, fill='black') else: canvas.itemconfigure(monitem, fill='white') if apercu.itemcget(monitem, 'fill') == 'white': apercu.itemconfigure(monitem, fill='black') else: apercu.itemconfigure(monitem, fill='white') "Dessine la grille" taille_case=20 canvas Canvas(fen, widthx*taille_case+4, height=y*taille_case+4) i = 0 while i < x: j = 0 while j < y: canvas.create_rectangle((i*taille_case)+2,(j*taille_case)+2,((i+1)*taille_case)+2 , ((j+1)*taille_case)+2, fill='white') j+=1 i+=1 canvas.pack() canvas.bind('', onClick) #------------------------------------------------------------------------------- def Apercu(fen,x,y): "Dessine l'aperçu" taille_case=5 apercu Canvas(fen, widthx*taille_case+4, height=y*taille_case+4) i = 0 while i < x: j = 0 while j < y: apercu.create_rectangle((i*taille_case)+2,(j*taille_case)+2,((i+1)*taille_case)+2 , ((j+1)*taille_case)+2, outline='white',fill='white') j+=1 i+=1 apercu.pack() return apercu #------------------------------------------------------------------------------- root = Tk() apercu=Apercu(root,25,25) Grille(root,25,25) root.mainloop()