У меня уже есть сетка квадратов 10X10, и я хочу нарисовать еще один квадрат поверх квадрата в сетке, когда он щелкнут.
Прямо сейчас у меня есть функции для рисования сетки в кадре и функции для определения координат квадрата (верхний левый угол и нижний правый угол).
Часть, с которой у меня проблемы, это
canvas=Canvas()
for row in range(10):
for column in range(10):
canvas.create_rectangle(10+(row*53),10+(column*53),60+(row*53),60+(column*53),fill='blue')
self.bind('<Button-1>',self.changeBlock)
куда
def changeBlock(self,event):
self.canvas.create_rectangle(upperX(event),upperY(event),lowerX(event),lowerY(event),fill='red')
upperX,upperY,lowerX,lowerY — все функции для определения координат квадрата, в котором находится мышь.
Я не знаю, почему changeBlock не запускается, когда я нажимаю что-то на холсте.
Полный:
class MainFrame(Frame):
def __init__(self,parent):
Frame.__init__(self,parent,background="blue")
self.parent=parent
self.parent.title("simple")
self.parent.geometry("600x600")
self.parent.resizable(0,0)
self.pack(fill=BOTH,expand=1)
canvas=Canvas()
for row in range(10):
for column in range(10):
canvas.create_rectangle(10+(row*53),10+(column*53),60+(row*53),60+(column*53),fill='blue')
self.bind('<Button-1>',self.changeClickBlock)
canvas.pack(fill=BOTH, expand=1)