【发布时间】:2014-01-08 09:04:58
【问题描述】:
Q1:wxpython中是否有鼠标单击事件。我没有找到单击事件。所以我使用Mouse_Down 和Mouse_UP 来实现它。
Q2:我还有一个双击事件。但是双击事件也可以上下鼠标。如何区分它们?
【问题讨论】:
Q1:wxpython中是否有鼠标单击事件。我没有找到单击事件。所以我使用Mouse_Down 和Mouse_UP 来实现它。
Q2:我还有一个双击事件。但是双击事件也可以上下鼠标。如何区分它们?
【问题讨论】:
要区分点击和双击可以使用wx.Timer:
Similar discussion in Google Groups.
代码示例(当然需要完善和测试,但给出一个基本概念):
import wx
TIMER_ID = 100
class Frame(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, title=title, size=(350,200))
self.timer = None
self.Bind(wx.EVT_LEFT_DCLICK, self.OnDoubleClick)
self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
def OnDoubleClick(self, event):
self.timer.Stop()
print("double click")
def OnSingleClick(self, event):
print("single click")
self.timer.Stop()
def OnLeftDown(self, event):
self.timer = wx.Timer(self, TIMER_ID)
self.timer.Start(200) # 0.2 seconds delay
wx.EVT_TIMER(self, TIMER_ID, self.OnSingleClick)
app = wx.App(redirect=True)
top = Frame("Hello World")
top.Show()
app.MainLoop()
【讨论】: