python tkinter listbox_python tkinter listbox事件绑定

我很难让事件绑定与python/tkinter一起工作。我只是试图点击并打印位置,但每次我这样做,“-1”是结果。

这是我的密码from Tkinter import *

import Tkinter

class make_list(Tkinter.Listbox):

def __init__(self,master, **kw):

frame = Frame(master)

frame.pack()

self.build_main_window(frame)

kw['selectmode'] = Tkinter.SINGLE

Tkinter.Listbox.__init__(self, master, kw)

master.bind('', self.click_button)

master.curIndex = None

#display the clicked location

def click_button(self, event):

self.curIndex = self.nearest(event.x)

print self.curIndex

#display the window, calls the listbox

def build_main_window(self, frame):

self.build_listbox(frame)

#listbox

def build_listbox(self, frame):

listbox = Listbox(frame)

for item in ["one", "two", "three", "four"]:

listbox.insert(END, item)

listbox.insert(END, "a list entry")

listbox.pack()

return

if __name__ == '__main__':

tk = Tkinter.Tk()

make_list(tk)

tk.mainloop()

更新了代码-我去掉了框架,但似乎不明白为什么在函数click按钮中的第一个print语句中得到-1from Tkinter import *

import Tkinter

class make_list(Tkinter.Listbox):

#display the clicked location

def click_button(self, event):

##this block works

w = event.widget

index = int(w.curselection()[0])

value = w.get(index)

print value

##this doesn't

self.curIndex = self.nearest(event.y)

print self.curIndex

self.curIndex = event.widget.nearest(event.y)

print self.curIndex

#display the window, calls the listbox

def build_main_window(self):

self.build_listbox()

#listbox

def build_listbox(self):

listbox = Listbox()

listbox.bind('<>', self.click_button)

for item in ["one", "two", "three", "four"]:

listbox.insert(END, item)

listbox.insert(END, "a list entry")

listbox.pack()

return

if __name__ == '__main__':

tk = Tkinter.Tk()

start = make_list(tk)

start.build_main_window()

start.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值