pygame键盘记录器改进思路?

时间:2020-04-09 22:54:15

标签: python-3.x macos pygame

我目前正在基于pygame事件处理程序编写pygame键盘记录程序。 我的旧版本基于测试应用程序所需的所有可用键,但是现在,由于旧版本的处理能力大量损失,我将其基于检索未处理的按键信息,并在按键中查找其位置。列表,并使pygame发出其连贯的字符串。 我已经完成了第一个功能版本,并希望获得一些改进意见。

special = '''+#-.,´ß0987654321^<'''
konverted = '''*\'_:;`?=)(/&%$§"!°>'''
print(special, konverted)

def key_get():
   for event in pygame.event.get():
      if event.type == pygame.KEYDOWN:
         key = pygame.key.get_pressed()
         for i in range(0, 253, 1): #empirisch gemessen für 'ü' (letztes bei umlauten)
            if key[i]:
               name = pygame.key.name(i)

               mod = pygame.key.get_mods()
               if mod & pygame.KMOD_SHIFT:
                  if all([str(x) != str(name) for x in special]):
                     name = name.upper()

                  elif any([str(y) == str(name) for y in special]):
                     for y  in range(0, len(special), 1):
                        if str(special[y])== str(name):
                           name = konverted[y]

      elif event.type == pygame.MOUSEBUTTONDOWN:name = "mousebuttondown"
      elif event.type == pygame.QUIT:name = False
      elif event.type == pygame.VIDEORESIZE:
         screen = pygame.display.set_mode(event.dict['size'], pygame.HWSURFACE | pygame.DOUBLEBUF | pygame.RESIZABLE)
         pygame.display.flip()

1 个答案:

答案 0 :(得分:1)

我不太确定您对我们意味着什么,但这是您想要的吗?

for event in pygame.event.get()
    if event.type == pygame.KEYDOWN:
        key_name = event.unicode