我正在使用Python 3.5,并且想要创建多击功能。
我的意思是,我想创建一个注意到Ctrl + S和Q的函数。
但是我的程序没有注意到它。
这是我的代码:
import threading, pygame, sys
from pygame.locals import *
from time import sleep
pygame.init()
screen = pygame.display.set_mode((1160, 640), 0, 0)
screen.fill((255, 255, 255))
pygame.display.flip()
def background():
while True:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if pygame.key.get_mods() & pygame.KMOD_CTRL and event.key == pygame.K_s:
print('GOOD')
def foreground():
while True:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
print('HELLO_WORLD')
if event.type == QUIT:
pygame.quit()
sys.exit()
b = threading.Thread(name='background', target=background)
b.start()
foreground()
答案 0 :(得分:0)
通过调用b.start()
,您可以使程序进入监听Ctrl + S事件的无限循环。一旦在background
线程中获得了组合键事件,就不会释放回事件队列中。并且foreground
函数将无法捕获和处理它。
如果您希望程序能够处理不同的组合键。您应该让一个功能侦听按键事件,然后将事件分派给不同的处理功能。