我已经有一个10X10的正方形网格,我想在点击时在网格中的正方形上绘制另一个正方形。用Tkinter点击画图
现在,我有函数绘制一个框架中的网格和函数来确定正方形的坐标(左上角和右下角)。
我遇到麻烦是
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,洛厄里都是函数来确定方形鼠标在坐标
我不知道为什么当我点击画布上的东西时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)
似乎并非是我有问题。当我运行我的代码并单击任何方块时,它根本不会调用changeBlock。我把打印语句放在changeBlock中,当我点击时它们不会运行。 – 2014-12-08 05:01:36
运行我刚刚给你的代码,它的工作原理。你为什么要约束自我?你应该绑定到画布。画布不能自我展现,除非自我延伸非常非正统的Tk。那有意义吗? – 2014-12-08 05:02:50
好问题是我将按钮绑定到自己而不是画布。现在它工作。谢谢! – 2014-12-08 05:07:57