我正在运行ML模型,它预测了fingure手势。我正在尝试使用pynput库模拟python中的按键事件,我检查它工作正常。但是我有其他程序是使用pygame库在python中编写的游戏,它打开了在一个新的窗口,但问题是按键控制不起作用,但它可以在我手动按键盘按钮时工作。
在pygame中,您可以通过执行以下操作将事件添加到事件队列:
newevent = pygame.event.Event(type, **attributes) #create the event
pygame.event.post(newevent) #add the event to the queue
其中type
是事件的类型(数值常量),**attributes
是属性的关键字列表,也是预定义的常量。
所有这些常量都在pygame.locals
模块中定义。 pygame event docs和pygame key docs列出了所有这些。
因此,如果您想模拟按下'a'键,例如,代码将为:
newevent = pygame.event.Event(pygame.locals.KEYDOWN, unicode="a", key=pygame.locals.K_a, mod=pygame.locals.KMOD_NONE) #create the event
pygame.event.post(newevent) #add the event to the queue
KEYDOWN是对应于keydown事件的常量。
unicode
是按下键的unicode表示。
key
是与按下的键相关联的常量。
mod
是表示修饰符的常量(例如,如果按下按钮,同时按下SHIFT或CAPS_LOCK)。
希望能帮助到你。
我通过使用keyboard.press模拟按键事件来解决问题,并使用keyboard.Listner()监听相同的事件。两者都存在于键盘库中。所以我没有使用pygame函数来监听事件。谢谢大家的帮助。