gpt4 book ai didi

python - wxpython中如何区分鼠标双击和单击

转载 作者:行者123 更新时间:2023-11-30 23:29:43 25 4
gpt4 key购买 nike

Q1:wxpython中是否有鼠标单击事件。我没有找到单击事件。所以我使用 Mouse_DownMouse_UP 来实现它。
Q2:我也有一个双击事件。但是双击事件也可以发出鼠标向上和向下的声音。我如何区分它们?

最佳答案

要区分单击和双击,您可以使用 wx.Timer :

  1. 在 OnMouseDown 中启动计时器
  2. 在 OnDoubleClick 事件处理程序中停止计时器
  3. 如果计时器没有被 OnDoubleClick 停止,您可以在计时器处理程序中处理单击。

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()

关于python - wxpython中如何区分鼠标双击和单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20991091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com