Python 在将名称绑定到形状时遇到问题

Python 在将名称绑定到形状时遇到问题,python,tkinter,tkinter-canvas,Python,Tkinter,Tkinter Canvas,我已经创建了一个带有映射名的数组-4个名称,我使用这些名称作为参数来命名画布上的矩形形状。现在,我想将这些数组名称映射为矩形名称,这样当用户单击矩形时,它将生成我指定的名称。 我正在尝试将mapNames数组名称绑定到矩形,但在绑定时遇到了问题,StringVar()出现了问题,并且更改了值以匹配不同的矩形,希望您能提供帮助 class Viewer(Frame): def __init__(self, master = None): Frame.__init__(self

我已经创建了一个带有映射名的数组-4个名称,我使用这些名称作为参数来命名画布上的矩形形状。现在,我想将这些数组名称映射为矩形名称,这样当用户单击矩形时,它将生成我指定的名称。 我正在尝试将mapNames数组名称绑定到矩形,但在绑定时遇到了问题,StringVar()出现了问题,并且更改了值以匹配不同的矩形,希望您能提供帮助

  class Viewer(Frame):

    def __init__(self, master = None):
    Frame.__init__(self, master)
   ........lines of code
    self.canvas.bind("<Button-1>", self.bind)
    self.var = StringVar()

   def bind(self, event):
      self.x, self.y = event.x, event.y
      for names in self.mapNames:
      self.var = self.var.set(self.names) 
      return self.var

     ##Trying to set the StringVar as the names in array Mapnames so         
       that when user clicks, the Map names that is the same as the 
       names that were assigned to the rectangles will print.
类查看器(框架):
def uuu init uuu(self,master=None):
帧。\uuuu初始化(自,主)
……代码行
self.canvas.bind(“,self.bind)
self.var=StringVar()
def绑定(自身、事件):
self.x,self.y=event.x,event.y
对于self.mapNames中的名称:
self.var=self.var.set(self.names)
返回self.var
##正在尝试将StringVar设置为数组Mapnames中的名称,以便
当用户单击时,地图名称与
将打印指定给矩形的名称。

当您设置
self.var.set(…)
时,返回值是
None
因此,当您设置
self.var=self.var.set(…)
时,您将对StringVar的引用替换为None,是否可能不需要将返回值分配给任何对象?我不确定命名回调
bind
是一个好主意,这意味着,如果有任何操作尝试执行
viewer.bind(“,seq)
,例如,它将失败,因为您已使用完全不同的内容覆盖了
.bind
方法。