【问题标题】:How do I differentiate objects in python on canvas如何区分画布上python中的对象
【发布时间】:2016-11-12 06:58:37
【问题描述】:

我想按下这个网格上的任何方块,我想让它变成黄色。但是我只能使用 itemconfig 将最近创建的块设为黄色。我该怎么办?

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

【问题讨论】:

    标签: python user-interface canvas tkinter grid


    【解决方案1】:

    经过一些实验,我得出了这个解决方案:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      相关资源
      最近更新 更多