繁体   English   中英

如何在 Pygame 中禁用键盘事件?

[英]How to disable keyboard events in Pygame?

我在 Blender 中使用 pygame 来获得多点触控支持。

不幸的是,pygame 捕获了所有键盘输入,这使得在 Blender 中无法使用快捷键。

有人可以帮我退订所有键盘事件吗?

谢谢

问题是,我使用 win32gui 来渲染 pygame 总是在顶部。 使用“win32con.SWP_NOACTIVATE”标志,我可以强制 pygame 处于非活动状态并让搅拌机处于活动状态。

    hwnd = pg.display.get_wm_info()["window"]

    rect = win32gui.GetWindowRect(hwnd)
    x = rect[0]
    y = rect[1]
    w = rect[2] - x
    h = rect[3] - y

    win32gui.SetWindowLong (hwnd, win32con.GWL_EXSTYLE, win32gui.GetWindowLong (hwnd, win32con.GWL_EXSTYLE ) | win32con.WS_EX_LAYERED )
    win32gui.SetWindowPos(hwnd, win32con.HWND_TOP, x, y, w, h, win32con.SWP_NOACTIVATE) 

您可以阻止特定事件。 根据 pygame wiki,这将阻止 pygame 对这些事件进行排队,但我无法测试它是否会阻止 pygame 请求键盘输入。

pygame.event.set_blocked([pygame.KEYDOWN, pygame.KEYUP])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM