You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyglet开发白板应用时数位板输入产生意外打印如何停止

问题解决方法

原因说明

该打印输出不属于你编写代码的逻辑,是Pyglet部分版本(尤其是1.5.x系列的开发/测试版本)数位板输入模块内置的未移除调试代码,检测到笔悬停时输出0,按压时输出1。

解决方案

  • 方案1(最推荐):关闭输入调试开关
    在导入pyglet之后的首行添加如下配置,即可直接关闭所有输入相关的调试输出:
    import pyglet
    pyglet.options['debug_input'] = False
    
    该方案无副作用,不需要修改框架源码。
  • 方案2:修复硬编码打印逻辑
    如果方案1不生效,说明你使用的Pyglet版本将调试打印直接硬编码在了数位板实现逻辑中:
    1. 优先升级到Pyglet 2.0+稳定版,该问题已经被官方修复
    2. 若不方便升级,可手动进入Pyglet安装目录的pyglet/input路径下,找到对应平台的数位板驱动文件,搜索删除print(0)、print(1)语句即可

代码优化提示

你目前的代码存在两处可修正的逻辑问题:

  1. on_motion事件中修改全局变量is_pen_drawing没有加global声明,在部分Python版本中会报错
  2. 压力为0的else分支仍然将is_pen_drawing设为True,会导致笔离开数位板后仍然判定为绘画状态
    修正后的on_motion逻辑如下:
@tablet.event
def on_motion(cursor, x, y, pressure, a, b):
    global is_pen_drawing
    if pressure > 0:
        is_pen_drawing = True
        points.append((x, y))
    else:
        is_pen_drawing = False
        points.append(None)

内容的提问来源于stack exchange,提问作者Gabriel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:54:06