我正在尝试让tkinter返回在列表框中单击的项目的索引。这是我的代码。
def fileSelection(self):
selection = listbox.curselection
print(selection)
listbox.bind("<Button-1>", fileSelection)
现在打印
在0x00320E30处的tkinter.Listbox对象的绑定方法Listbox.curselection
无论点击什么项目。如果我更改代码以包含这样的按钮:
button = Button(text=u"test", command=OnButtonClick)
def OnButtonClick():
selection = listbox.curselection()
print(selection)
并选择列表框项目,然后单击按钮,它将按预期打印所选项目的索引,但这是我不想要的额外步骤。
答案 0 :(得分:6)
def fileSelection(self):
selection = listbox.curselection
print(selection)
看起来你忘记了括号。
def fileSelection(self):
selection = listbox.curselection()
print(selection)
答案 1 :(得分:-1)
根据effbot.org,轮询窗口小部件可让您进行点击更新。
self.current = None
self.listbox = Listbox(self)
self.listbox.pack()
self.poll()
def poll(self):
now = self.listbox.curselection()
if now != self.current:
self.list_has_changed(now)
self.current = now
self.after(250, self.poll)
def list_has_changed(self, selection):
print "selection is", selection