1

我正在运行 ML 模型,它可以预测手指手势。我正在尝试使用 pynput 库在 python 中模拟按键事件,我检查它是否工作正常。但是我还有其他程序,它是一个使用 pygame 库用 python 编写的游戏,它打开了在新窗口中,但问题是按键控件不起作用,但是当我手动按下键盘按钮时它起作用。

4

2 回答 2

3

在 pygame 中,您可以通过执行以下操作将事件添加到事件队列:

newevent = pygame.event.Event(type, **attributes) #create the event
    pygame.event.post(newevent) #add the event to the queue

type事件的类型(数字常量)和**attributes属性的 keyarg 列表在哪里,也是预定义的常量。

所有这些常量都在pygame.locals模块中定义。pygame 事件文档pygame 密钥文档列出了所有这些。

因此,例如,如果您想模拟按下“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)。

希望能帮助到你。

于 2019-04-17T20:33:44.440 回答
0

我通过使用keyboard.press模拟按键事件解决了这个问题,并使用keyboard.Listner()监听相同的事件两者都存在于键盘库中。所以我没有使用pygame函数来监听事件。感谢大家的帮助。

于 2019-04-20T13:31:24.373 回答