我有一个应用程序,每当用户按下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
但它只是在那里阻塞,如果我有更多的代码,它不会运行它,只有当时间被打破。我也不能用tkinter!
有没有什么东西只有按下键才能运行?没有循环。
其中一种方法是创建一个新线程来运行密钥检测器。下面是一个例子:
注意,在调用线程的start()函数之前,while循环不会运行。此外,它不会自动重复函数-您必须将代码包装在while循环中才能重复。
不要显式调用线程的run()函数,因为这将导致代码与所有其他代码一起运行,而不是在单独的线程中。必须使用threading.Thread中定义的start()函数,以便创建新线程。
另请注意:如果计划使用atexit模块,则创建新线程将使该模块无法正常工作。只是抬头一看。:)
我希望这有帮助!
听起来你要找的是一个基于输入的while循环。如果您将所需状态的列表放入数组中,那么您可以每次检查输入,看看它是否是您试图捕获的输入之一。
相关问题 更多 >
编程相关推荐