Python pygame中的键盘布局感知组合

Python pygame中的键盘布局感知组合,python,keyboard,pygame,keyboard-layout,Python,Keyboard,Pygame,Keyboard Layout,Pygame有一个常量,例如感叹号!。该常量称为pygame.K_惊叹号。然而,在我的标准美国键盘布局中,感叹号是通过按下shift键和键1生成的。考虑下面两个片段: # snippet 1 for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_EXCLAIM: print('!') elif event.

Pygame有一个常量,例如感叹号!。该常量称为
pygame.K_惊叹号
。然而,在我的标准美国键盘布局中,感叹号是通过按下shift键和键1生成的。考虑下面两个片段:

# snippet 1
for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_EXCLAIM:
            print('!')
        elif event.key == pygame.K_1:
            print('1')

# snippet 2
pressed = pygame.key.get_pressed()
if pressed[pygame.K_EXCLAIM]:
    print('!')
if pressed[pygame.K_1]:
    print('1')
在这两种情况下,当我按下Shift+1时,会产生一个感叹号,pygame不识别组合,只是说按下了Shift键和1键,打印出值“1”。这让我有点担心,因为虽然我可以硬编码这样的组合,但它们取决于键盘的布局


我是否可以使pygame以键盘布局感知的方式生成常量组合(例如
K_惊叹号
K_符号
)?

您需要的是
事件。unicode
属性:

if event.unicode == "!":
     print("!")

很有趣,但它似乎无法与Shift+NumPad3一起生成分页。这也能实现吗?@Mephy Untestet!!请您测试并报告一下好吗?不过,这是键盘布局的硬编码,我正在努力避免;)我想unicode已经足够好了。