python event.wait ardından çalışmaya devam etme
merhaba,
python'a öğrenmeden daldığım için, basit bir noktada takıldım.
import pyautogui
import threading
import keyboard
def set_interval(func, num=0):
def func_wrapper():
set_interval(func, num+1)
func()
t = threading.Timer(0.05, func_wrapper)
e = threading.Event()
if keyboard.is_pressed('x'):
print('durduruldu. toplam %d istek yapıldı' % (num-1))
e.wait()
if keyboard.is_pressed('x'):
e.clear()
else:
print('%d. kez istek çalıştırılıyor...' % (num))
t.start()
return t
def tuslar():
pyautogui.press('q')
set_interval(tuslar)
komut çalıştırıldığında saniyede 20 defa q
tuşuna basıyor x
tuşuna basarak bu işlemi beklemeye alabiliyorum ama tekrar x
tuşuna bastığımda işleme devam edemiyorum.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
time sleep koydum çünkü klavyeyi dinlerken sorun çıkıyor.
import time
import keyboard
num=0
paused=False
while True:
print("q ya basılıyor")
time.sleep(0.05)
num = num+1
if keyboard.is_pressed('x'):
paused=True
if(paused):
print('durduruldu. toplam %d istek yapıldı' % (num))
while True:
time.sleep(0.1)
if keyboard.is_pressed('x'):
print("x'e tekrar basildi")
paused=False
num = 0
time.sleep(1)
break
q ya basma işi thread te çalışacak kadar önemli ise q'ya basılıyor kısmında thread ile o fonksiyonu çalıştırabilirsin.
soruna gelecek olursak. durduğun thread i tekrar çalıştırmak için başka bir thread de klavyeyi dinleyip tekrar x e basıldığı vakit çalışmasına devam ettirebilirsin. Thread durduğu vakit klavyeyi dinleyecek bir akış kalmıyor.