#9375·kivy

touch.is_double_tap 在鼠标提供程序中受 Shift 修饰符影响

作者: mushket-re0ah创建于 2026年9月12日更新于 2026年9月12日

** 软件版本**

  • Python: v3.14.6(主,2026年6月15日,11:36:54) [GCC 16.1.1 20260430] (中文(简体) ).
  • OS: 拱顶的linux桌面 7.1.2-arch3-1 " SMP PREEMPT DYNAMIC Fri, 03 Jul 2026 23:25:36+000 x86 64 GNU/Linux
  • 基维:2.3.1
  • Kivy安装方法:管道

还检查过

  • Python: v3.8.7 (tags/v3.8.7:6503f05,2020年12月21日,17:59:51) [MSC v 19.28 64 bit (AMD64)].
  • OS:窗口7
  • 基维:2.3.1
  • Kivy安装方法:管道

** 描述错误** 当使用鼠标输入提供者时,持有Shift键会影响"touch.is double tap"的值.

换班: 单击 - > 对 双击 -> 虚假

不按预期移动行为 : 单击 - > 虚假 双击 -> 对

它将像:

不是换班,是换班
单击 QQ False QQ True QQ
双击 QQ 真 QQ 假 QQ

因此,握住的班次是倒转触控.is double tap.

这似乎是由鼠标提供者根据Shift修改符明确设置了 “is double tap” 造成的:

2zz
为: 修饰符中的"tort"

这种行为存在于kivy/输入/提供者/mouse(主分支状态)的on mouse press'中。 在2.3.1中,也见于on-mouse-motion')。

** 预期行为** `touch.is double tap'应表明当前触摸是否是双打/点击,独立于键盘修改器。

一次点击应产生touch.is double tap syse',一次双点击应产生touch.is double tap syse',而不论是否持有Shift。

如果 Shift 行为是故意的, 并且是鼠标/ 触摸模拟所需的, 它至少应该可以配置, 所以应用程序可以在需要正常的为 double tap 语义时禁用它 。 由kivy.config编写.

** 废除**

从 kivy. app 导入 App
从 kivy. uix. widget 导入部件
从 kivy. core. 窗口导入窗口

类 root( 部件) :
def on touch  down(自身,触摸) :
print("是双击:",tuch.is double tap,"是移:","是移"在Windows.modifers)
返回超级 (. 在 touch  down(touch) 上

类测试( App) :
def 构建( 自 ) :
自我.root = root ()
返回自定义。 root

测试(. ) 运行(.

为什么这是一个问题 is double tap作为触摸事件属性被曝光,其名称/意指强烈暗示它描述触摸是否为双自来相.

键盘修饰状态是一个单独的概念.

例如,申请可能需要合理地区分这四种情况:

4zz
如果触摸.is double tap:
如果窗口中的“ 转换 ” 。 修改符 :
# 双击+ 移动
. . . . . . . .
其他情况:
双击
. . . . . . . .

使用当前的鼠标提供者, 这是不可能的, 因为 Shift 更改了 touch.is double tap 的含义 。

通过创建本地变量来扭转反向等本地工作:

zz
Shift = 窗口中的 “ Shift ” 。 修改器
a. b. b. b. b. b. b. b. b. b. b. b. b. b. .
如果换行:
双子图 = 不是双子图

只有当这种转换在任何地方进行时才起作用 . . . . . . .