Ich hab mir mal ein script gebastelt, mit dem ich eine Art Double Click für Funktionen realisieren möchte.
Gibt es auch wege das sinnvoller so lösen?
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
from threading import Thread
import time
class Clicker():
def __init__(self):
self.click_time = time.time() - 1
self.single_event = True
self.__double_click_delay = 0.3
def click(self):
t = time.time()
if t - self.click_time < self.__double_click_delay:
self.single_event = False
return 2
else:
self.click_time = time.time()
time.sleep(self.__double_click_delay)
if self.single_event:
return 1
else:
self.single_event = True
return 0
def as_thread(function, params=[]):
thread = Thread(target=function, args=params)
thread.start()
def click_event(singleevent,doubleevent):
temp = click1.click()
if temp == 2:
doubleevent()
elif temp == 1:
singleevent()
def single():
print 'single'
def double():
print 'double'
def main():
as_thread(click_event,[single,double])
time.sleep(0.250)
as_thread(click_event,[single,double])
click1 = Clicker()
if __name__ == '__main__':
main()
