|
|
|
|
| Tkinter编程bind的问题: 鼠标双击既触发双击事件又触发单击事件 |
 Tkinter编程bind的问题: 鼠标双击既触发双击事件又触发单击事件 - meijing [ 2005-11-19 15:40 | 980 byte(s)]
 Re: Tkinter编程bind的问题: 鼠标双击既触发双击事件又触发单击事件 - panhudie [ 2005-11-19 18:53 | 229 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
学习Tkinter编程时,bind的一个问题:
在程序中bind了<Double-1>和<Button-1>。结果发现双击鼠标左键时注册的两个回调都被触发了,这是Tkinter的bug吗?或者就是有意设计的?
代码:
def onLeftClick(event):
print 'Got left mouse button click:',
showPosEvent(event)
def onDoubleLeftClick(event):
print 'Got double left mouse click',
showPosEvent(event)
tkroot.quit()
tkroot = Tk()
widget = Label(tkroot, text='Hello bind world')
widget.pack()
widget.bind('<Button-1>', onLeftClick)
widget.bind('<Double-1>', onDoubleLeftClick)
tkroot.mainloop()
双击鼠标,程序输出如下:
$ python ltki.py
Got left mouse button click: Widget=.10307584 X=17 Y=10
Got double left mouse click Widget=.10307584 X=17 Y=10
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
据我所知在windows都是这样,两个在一定时间内的单击, 第2个单击会触发双击事件, 因为第一此单击的时候, 系统无法知道你到底会不会双击.
如果你是用windows的话, 你可以用Visual Studio自带的那个spy++监听mouse事件
|
|
|
[Original]
[Print]
[Top]
|
|
|