python - 如何在 kivy 中生成事件,例如 on_touch_down 或 on_touch_up 事件
问题描述
是否可以在 kivy 中生成事件,以便在用户不触摸屏幕的情况下调用 on_touch_up 或 on_touch_down 函数?
解决方案
首先查看Motion Event文档中的注释:
您永远不会自己创建 MotionEvent:这是提供者的角色。
话虽如此,您可以像这样创建和调度一个最小事件:
class MyBoxLayout(BoxLayout):
def mydispatchAnEvent(self):
touch = MouseMotionEvent(None, 123, (123, 456)) # args are device, id, spos
touch.button = 'left'
touch.pos = (321, 654)
self.dispatch('on_touch_down', touch)
类(在这种情况下MyBoxLayout
)必须是EventDispatcher
. 调用mydispatchAnEvent()
将向MyBoxLayout
.
推荐阅读
- javascript - 如何使用 ajv 模式验证验证值是否为格式和/或类型为 double?
- c++ - 如何让我的代码适用于较大的 N 值?
- java - PCB 类型中的方法 placeComponent() 不适用于参数(HardwareComponent)
- asp.net-mvc - 传递 htmlAttributes 时在 MVC 中使用 @Ajax.ActionLink 时出现问题
- html - 如何在 HTML 中添加多个引号?
- compiler-construction - 用于 Flex/Bison 的 API/库
- r - 按组创建以变量总和为条件的变量
- django - 如何处理 Django Rest Framework 中的文件?
- apache-kafka - Kafka:所有消息在流中失败,而主题中的数据
- c - 快乐数 - Leetcode 挑战