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