I am trying to make a program that prints 'hi' until the user releases a key. My current code still runs even after a key release. I'm pretty sure it's because the keyboard listener is on another thread, but I don't know how to run on that thread.
from pynput.mouse import Button, Controller
from pynput import keyboard
running = True
def on_release(key):
running = False
listener = keyboard.Listener(
on_release=on_release)
listener.start()
while running:
print("hi")
Putting it in a class yields the same results
class Clicker():
def __init__(self):
self.running = True
self.listener = keyboard.Listener(on_release=self.on_release)
self.listener.start()
def on_release(self):
self.running = False
print("Stopped")
def run(self):
while(self.running):
print("hi")