Как запустить pynput в фоновом режиме?

#python #multithreading #keyboard #terminate #pynput

#python #многопоточность #клавиатура #завершить #pynput

Вопрос:

Я использую pynput keyboard.Listener и присоединился к потоку.

 def main():
    with Listener(on_release=checkSPress) as listener:
        listener.join() # keep on listening

def checkSPress(key):
    if 'char' in dir(key):
        if key.char == 's':
            print("Starting ...")

main()
  

После нажатия s клавиши я хочу, чтобы она завершила прослушивание и запустила что-то в основном потоке. Я хочу этого, потому что после нажатия s клавиши я создаю графический интерфейс, но он выдает ошибку, что QApplication must be created inside main thread . Есть ли способ, которым я могу вернуться к основному потоку и запустить функцию или полностью завершить прослушиватель (я довольно новичок в обработке потоков и pynput.)

Ответ №1:

Вам просто нужно return False из callback , чтобы остановить Listner . Просто попробуйте:

 if key.char == 's':
    print("Starting ...")
    return False