我已經有一個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