2015-05-27 28 views
2

修改Tkinter的畫布標記我編程方式添加tag_binds到具有標籤「標籤」在我的畫布上的所有對象:如何通過事件

self.canvas.tag_bind("tag","<Button 2>",self.tag_highlight) 

self.canvas包含了用戶添加的所有對象(所有但是,在tag_highlight中,我只想對畫布中的實際元素有一個句柄。event.widget似乎沒有幫助,它只是一個4浮點數的元組,它是我的一個元組。無法鏈接到任何畫布項目我已嘗試使用以下,無濟於事:

self.canvas.find_closest(event.x,event.y) 

我想這樣做,是有這樣一個句柄:

t=self.canvas.getitem(event.widget) 

,這樣我可以在使用它,例如:

self.canvas.Move(t,30,20) 
print self.canvas.coords(t) 

等等。 也許我只是想念明顯?

回答

1

您可以使用指向「當前」對象的變量「current」。當前對象在official tk documentation中的描述如下:

標籤當前由Tk自動管理;它適用於 當前項目,它是繪製區域覆蓋鼠標光標的 位置的最上面的項目(不同的項目類型以不同的方式解釋此內容;請參閱各個項目類型文檔以瞭解詳細信息)。 如果鼠標不在畫布窗口小部件中或未覆蓋某個項目,則 沒有項目具有當前標籤。