我在这里发布了一个问题,并建议我重组代码。现在已经不同了,我觉得有理由提出一个新问题。
无论如何,我正在尝试向列表框添加拖放功能,但我认为第一步是让事件绑定首先工作。目前,当我单击列表时,单击列表框时出现以下错误。出现列表框窗口,但是当我单击它时会发生错误。
"AttributeError: make_list instance has no attribute 'nearest'.
此外,当我在 build_listbox 方法中打印列表框时,会打印以下小数点 .40720520L。这不应该打印列表框中的值吗?毕竟,方法相同。列表框是否未正确创建?
from Tkinter import *
import Tkinter
class make_list:
def move_mouse(self, event):
self.curIndex = event.nearest(event.y)
print self.curIndex
def click_button(self, event):
w= event.widget
self.curIndex = int(w.curselection()[0])
#print self.curIndex
value = w.get(self.curIndex)
print value
def build_main_window(self):
self.build_listbox()
def build_listbox(self):
listbox = Listbox()
listbox.bind('<<ListboxSelect>>', self.click_button)
listbox.bind('<B1-Motion>', self.move_mouse)
for item in ["one", "two", "three", "four"]:
listbox.insert(END, item)
listbox.insert(END, "a list entry")
listbox.pack()
print listbox
return
if __name__ == '__main__':
start = make_list()
start.build_main_window()
mainloop()