我正在开发一个众所周知的SysTrayIcon示例,需要同时处理单击和双击。
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
我知道这涉及创建一个计时器:
但是在“纯”python中实现它的最佳方法是什么(仅限ctypes / pywin32,没有qt,wx或gtk)?自己创建一个帖子?或者启动某种Windows计时器,在必要时为我生成WM_TIMER消息?
PS我找到了一种正确的方法来询问用户关于双击时间here的用户偏好。
PPS我还看到了处理单击和双击here有多糟糕的看法。
答案 0 :(得分:1)
您可以使用pywin32
' s timer
module。设置双击标志并在单击回调中启动计时器,并清除计时器回调中的双击标志,并在检测到双击后终止点击回调中的计时器。
启动计时器:
timer_id = set_timer(delay_period, callback)
停止计时器:
kill_timer(timer_id)