区分python中的单击和双击
我正在处理一个著名的示例,需要同时处理单击和双击区分python中的单击和双击,python,pywin32,win32gui,Python,Pywin32,Win32gui,我正在处理一个著名的示例,需要同时处理单击和双击 def notify(self, hwnd, msg, wparam, lparam): if lparam==win32con.WM_LBUTTONDBLCLK: self.execute_menu_option(self.default_menu_index + self.FIRST_ID) elif lparam==win32con.WM_RBUTTONUP: self.show_menu()
def notify(self, hwnd, msg, wparam, lparam):
if lparam==win32con.WM_LBUTTONDBLCLK:
self.execute_menu_option(self.default_menu_index + self.FIRST_ID)
elif lparam==win32con.WM_RBUTTONUP:
self.show_menu()
elif lparam==win32con.WM_LBUTTONUP:
pass
return True
我知道这涉及到创建计时器:
- Qt有QTimer.singleShot ()
- PySide具有QtCore.QTimer ()
- wx有wx定时器 ()
PPS我也读过一篇关于处理单点和双击是多么糟糕的观点。你可以使用
pywin32
。设置双击标志并在单击回调中启动计时器,清除计时器回调中的双击标志,并在检测到双击后终止单击回调中的计时器
要启动计时器,请执行以下操作:
timer_id = set_timer(delay_period, callback)
要停止计时器,请执行以下操作:
kill_timer(timer_id)
让单击设置一个标志并启动一个倒计时,然后让倒计时完成后清除标志,如果在标志打开时发生单击,则是双击?@TigerhawkT3没错。在我的问题中,我链接了三个实现,它们完全符合您的建议。问题是,在没有额外libs的情况下,哪一种方法是正确的:创建一个单独的线程或使用一些windows api作为计时器。pywin32是否没有类似Tkinter的
after()
?之类的事件计时器?例如。@TigerhawkT3是的,这正是我想要的。pywin32文档是一种不直截了当的方式。谢谢