2016-11-12 36 views
2

我想按此网格上的任何方块,并且我想让它变成黄色。但我只能使用itemconfig创建黄色的最新块。我该怎么办?如何区分画布上的python中的对象

from tkinter import * 

master = Tk() 

canv = Canvas(master, width=200, height=100) 
canv.pack() 

def select(event): 
    print("Coordinates:", event.x, ",",event.y) 
    canv.itemconfig(grid,fill="yellow") 

y=1 
for i in range(1,6): 
    for j in range(0,10): 
     grid=canv.create_rectangle(1+(20*j),y,20+(20*j),20+y,fill="red") 
     canv.tag_bind(grid,'<Button-1>',select) 
    y+=20 


mainloop() 

回答

0

一些试验后,我来到了这个解决方案:

from Tkinter import * 

master = Tk() 

canv = Canvas(master, width=200, height=100) 
canv.pack() 

def select(event, grid): 
    print("Coordinates:", event.x, ",",event.y) 
    canv.itemconfig(grid,fill="yellow") 

y=1 
for i in range(1,6): 
    for j in range(0,10): 
     grid=canv.create_rectangle(1+(20*j),y,20+(20*j),20+y,fill="red") 
     canv.tag_bind(grid, '<Button-1>', lambda event, var=grid: select(event, var)) 
    y+=20 

mainloop()