python - on_key_press() 事件阻塞 on_mouse_press() 和 on_mouse_motion() 事件 1 秒
问题描述
所以我正在用 Pyglet 开发一个小游戏,我遇到了这种奇怪的行为,我不知道如何解决。这似乎是一个 Pyglet 错误,但奇怪的是我找不到其他用户报告这个问题。
问题是按下一个键后,如果我在按下键后右击左键,该事件将被忽略。这是可重复的,总是。有趣的是,如果我右键单击,事件总是运行良好。只有左键是问题。按下任何键后,on_mouse_motion() 也会被阻止 1 秒。如果我不按任何键盘键,所有鼠标事件都可以正常工作。
我已经用 Pyglet 版本 1.3.0、1.4.10 和 1.5.11 对此进行了测试,并且都具有相同的行为。我还在 2 台不同的计算机上对此进行了测试,并且行为是相同的。我还尝试了 Vsync ON 和 OFF 以及 pyglet 窗口独有的鼠标。使用 Windows 10 和 Python 3.7.4-64b。
这是重现问题的简单代码,只需按一个键,然后在 1 秒内左键单击:
import pyglet
window = pyglet.window.Window()
@window.event
def on_key_press(symbol, modifiers):
print('A key was pressed')
@window.event
def on_mouse_press(x, y, button, modifiers):
print('Mouse event')
pyglet.app.run()
编辑:问题是 Synaptics 触摸板,它被配置为在笔记本电脑上打字时禁用触摸板。
解决方案
似乎问题在于 Synaptics 触摸板,它被配置为在笔记本电脑上打字时禁用触摸板:
我将外接鼠标连接到笔记本电脑,问题就消失了。
推荐阅读
- python - 如何使用 Beautiful Soup 为 HTML 页面找到唯一的文章 ID/页面 ID?
- javascript - Jest - 模拟从被测函数调用的函数
- r - 按条件对数据框列表进行子集化
- ios - 如何在swift中使用`if case`语句作为布尔值
- hibernate - 如何在 HibernateUtil 上设置 junit5 配置
- linux - 读取/写入 Linux 共享内存以监控子进程
- kotlin - java.lang.IllegalStateException :ViewTreeLifecycleOwner 未从 DecorView@5ab7e30 [MainActivity] 中找到
- python - InvalidArgumentError:找到 2 个根错误。(0) 无效参数:从形状为 [20,161] 的张量中指定形状为 [?,13] 的列表
- reactjs - Launch.json - 等待第一个调试器加载,然后执行第二个
- list - Prolog 列表中每隔一个数字加倍