2016-07-17 113 views
1

我的问题很简单。我想在用户按住一个键时运行一个循环,在我的例子中是R按住键盘键时循环

问题是:我不想想要使用PyGame,并且控制台窗口不会被聚焦。 (Selected)

编辑:我看到这个问题被标记为重复。我检查了另一个线程,两者之间的主要区别在于,这需要检查一个要保留的密钥,python /控制台窗口焦点没有被选中。

+0

听起来像你需要一些线程来听取键盘输入...你有什么试图实现这一点? –

+0

@ cricket_007我不知道该怎么尝试,我在Google上发现的所有内容都是针对PyGame的。 **编辑:**你需要告诉我如何使用多线程,因为没有人能够帮助我。 – spikespaz

+2

重复? http://stackoverflow.com/questions/11918999/key-listeners-in-python –

回答

0

如果您使用的是Windows:

MSVCRT可能是你正在寻找(https://docs.python.org/2/library/msvcrt.html)库。 此lib中包含的kbhit功能,“如果一个按键被等待读返回true”:

from msvcrt import kbhit, getch 

while (kbhit()): 
    getch() 
    #code 

的残培读取密钥,因此它不会在循环永留(因为功能的kbhit仍然检测到未读取的密钥)。

+0

谢谢!一个小问题:如果控制台窗口没有对焦,它不能检测到按键。 '''while True: 如果kbhit()和getch()== b'r':''' – spikespaz