keyboard - Python - 检测按键

标签 keyboard python

我有一个应用程序,我希望每当用户按下 RETURN/ENTER 时,它都会进入带有输入的 def。

我正在使用这段代码:

while True:
    z = getch()
    # escape key to exit
    if ord(z) == 9:
        self.command()
        break
    if ord(z) == 27:
        print "Encerrando processo.."
        time.sleep(2)
        sys.exit()
        break

但它只是阻塞在那里,如果我有更多代码,它不会运行它,只有当 while 中断时。我也不会使用 tkinter!

有什么东西只有在按下键时才会运行吗?没有循环。

最佳答案

其中一种方法是创建一个新线程来运行 key 检测器。这是一个例子:

import threading

class KeyEventThread(threading.Thread):
    def run(self):
        # your while-loop here

kethread = KeyEventThread()
kethread.start()

请注意,在您调用线程的 start() 函数之前,while 循环不会运行。此外,它不会自动重复该功能 - 您必须将代码包装在 while 循环中才能重复。

不要显式调用线程的 run() 函数,因为这会导致代码与所有其他代码一起运行,而不是在单独的线程中运行。您必须使用 threading.Thread 中定义的 start() 函数,以便它可以创建新线程。

另请注意:如果您计划使用 atexit 模块,创建新线程将使该模块无法正常工作。只是一个提示。 :)

希望对您有所帮助!

关于keyboard - Python - 检测按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18257522/

相关文章:

java - 有没有办法在没有awt.robot的情况下控制java中的键盘

javascript - 在 Javascript 中精确模拟用户的按键

Python子进程列表文件不带 "\n"

python - 使用堆栈通过单列索引多列

iphone - iOS 中的文本输入区域失去焦点?

ios - 触摸屏幕时如何隐藏键盘(搜索栏)

python - (pynput) 捕获键阻止将它们发送到其他应用程序

python - 如何使用 Python 中 JSON 输出的数据创建表

python - 如何打印出具有特定质量的列表?

python - 将 pandas dataframe json 列切成列