"You've pressed the Enter Key!"
Всякий раз, когда я нажимаю клавишу (z), функция должна выполняться:
#Pseudocode:
bind(<Enter>, function_x)
В настоящее время я работаю над программой на Python, которая будет работать в постоянная петля. Запускается только на консоли (без графического интерфейса), но все же мне нужно иметь возможность взаимодействовать с программой в любое время не имея программы запрос на вход.






Пынпут
(pip install pynput)
Простой модуль для обработки и контроля общих входных данных
from pynput import keyboard
from pynput.keyboard import Key
def on_press(key):
#handle pressed keys
pass
def on_release(key):
#handle released keys
if (key==Key.enter):
function_x()
with keyboard.Listener(on_press=on_press,on_release=on_release) as listener:
listener.join()
(См. документы)
Клавиатура (pip install keyboard)
Простой модуль для моделирования и обработки ввода с клавиатуры.
keyboard.add_hotkey('enter', lambda: function_x())
(См. Документация по клавиатуре)
Ткинтер
Интегрированный модуль пользовательского интерфейса, может отслеживать входные данные в сфокусированном потоке
from tkinter import Tk
root = Tk() #also works on other TK widgets
root.bind("<Enter>", function_x)
root.mainloop()
Имейте в виду: Все эти решения так или иначе используют многопоточность. Возможно, вы не сможете выполнить другой код после того, как начнете прослушивать ключи.
Полезные темы: KeyListeners, Привязка в Tkinter
не стесняйтесь добавлять больше решений
Основной цикл — это то, что заставляет Tkinter возможный реагировать на события клавиатуры в произвольное время. Попробуйте
pynput, у него есть возможность установить прослушиватель клавиатуры (который, по сути, является циклом событий, работающим в другом потоке), но обратите внимание, что обратные вызовы от прослушивателя обязательно будут выполняться в этом потоке, а НЕ в вашем основном потоке.