目录
鼠标提供程序实现¶
在Linux系统中,当鼠标提供程序与另一个多点触控提供程序(如hidinput或mtdev)一起使用时,鼠标可能会带来不便。鼠标可能与它们产生冲突:一次单点触摸可能会从鼠标提供程序生成一个事件,同时从多点触控提供程序生成另一个事件。
为了避免这种行为,您可以在鼠标配置中激活“disable_on_activity”令牌。这样,如果任何触摸由其他提供者创建,鼠标事件将被丢弃。请将此添加到您的配置中:
[input]
mouse = mouse,disable_on_activity
使用鼠标进行多点触控交互¶
在 1.3.0 版本加入.
默认情况下,鼠标中键和右键,以及ctrl+左键的组合,用于多点触控模拟。如果您希望将这些操作用于其他目的,可以通过激活“disable_multitouch”标记来禁用此行为:
[input]
mouse = mouse,disable_multitouch
在 1.9.0 版本发生变更.
现在,您可以有选择地控制上述方式发起的点击是否模拟多点触控。如果触摸已按上述方式发起(例如,右键鼠标按钮),则会在触摸的配置文件中添加一个 multitouch_sim 值,并在触摸上添加一个 multitouch_sim 属性。默认情况下,multitouch_sim 为 True,并且该触摸将模拟多点触控。然而,如果配置中添加了 multitouch_on_demand,则情况会有所不同。
[input]
mouse = mouse,multitouch_on_demand
那么 multitouch_sim 默认为 False。在这种情况下,如果在鼠标释放之前将 multitouch_sim 设置为 True`(例如在 `on_touch_down/move 中),该触摸将模拟一个多点触控事件。例如::
if 'multitouch_sim' in touch.profile:
touch.multitouch_sim = True
在 2.1.0 版本发生变更.
Provider 通过监听 Window 中的属性/事件来分发悬停事件。可以通过将 MouseMotionEventProvider.disable_hover 设置为 True 或在配置中添加 disable_hover 来禁用分发,如下所示:
[input]
mouse = mouse,disable_hover
还可以通过 MouseMotionEventProvider.disable_hover 属性在运行时启用/禁用悬停事件。
以下是 profile 属性列表所支持的值列表。
配置文件值 |
描述 |
按钮 |
鼠标按钮(left、right、middle、scrollup 或 scrolldown 之一)。通过 button 属性访问。 |
位置 |
|
multitouch_sim |
指定是否模拟多点触控。通过“multitouch_sim”属性访问。 |
- class kivy.input.providers.mouse.MouseMotionEventProvider(device, args)[源代码]¶
-
- property disable_hover¶
如果设置为
True,则禁用悬停事件的分发。悬停事件默认启用(disable_hover 为
False)。如果您想通过配置文件启用或禁用悬停事件,请参阅模块文档。在 2.1.0 版本加入.