我有一个函数需要大约 10 秒才能运行。我希望它一遍又一遍地运行,直到我按下某个键,然后完成该功能。 我可以使用 python
keyboard
模块来检测是否按下了某个键,但是如果我在函数运行时按下了某个键,它就不会检测到。是否有一个函数可以将按下的按键放入队列中,每次函数结束时我都可以卸载该队列?
我已经尝试过这段代码:
import pygame
import time
screen = pygame.display.set_mode((500, 500))
pygame.init()
def f():
time.sleep(10)
print('done')
running = True
while running:
f()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
running = False
但是只有在 pygame 窗口中按下 q 时才有效
您可以使用多线程来解决您的问题,并使用
queue
来传递按键。