#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