我已经有了一个10×10的方格格,当它被点击时,我想在网格中的一个正方形上画另一个正方形。
现在,我有一些函数可以在一个框架中绘制网格,还有一些函数可以确定正方形(左上角和右下角)的坐标。
我遇到麻烦的地方是
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)
发布于 2014-12-08 04:54:29
这段代码可以工作,只是稍微修改一下你的代码。您没有为提供足够的信息,但这足以说明.该起作用了。我正在运行python3 -在python2中,您可以从"Tkinter“导入。
重要问题:
可能问题
其他建议
Effobt在tkinter上有一个很好的教程。这是一个寻找基本例子的好地方
画布上的物品:http://effbot.org/tkinterbook/canvas.htm
关于事件:http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm
https://stackoverflow.com/questions/27351605
复制相似问题