刚开始使用kivy框架,在kivy painting app tutorial中有以下代码行:

touch.ud['line'] = Line(points=(touch.x, touch.y))


有人可以说明touch.ud的确切含义吗?
使用print(help(touch.ud))返回


  kivy.input.motionevent模块中有关EnhancedDictionary的帮助:
  
  类EnhancedDictionary(builtins.dict)
  ...


将所有这些放在一起,仍然不确定发生了什么。有人可以特别解释一下“ ud”部分。谢谢!

最佳答案

我们来看一下touch部分,它是提供事件on_touch_XXX且为MotionEvent的参数,因此,如果您要查找信息,则应转到文档的该部分,选中docs,您将获得以下信息:


  ud = None
  
  用户数据字典。使用此词典可保存您自己的数据。


然后描述告诉我们,如果您要共享要在on_touch_xxx其他事件中使用的某些信息,则将其保存在该字典中是正确的:

def on_touch_XXX(self, touch):
    touch.ud["some_info"] = some_value

def on_touch_YYY(self, touch):
    value = touch.ud["some_info"]
    print(value)


在特定示例的情况下,将保存在on_touch_down中创建的线的实例,因为on_touch_move您需要它来添加更多点。

关于python - Kivy:touch.ud是什么意思,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51841557/

10-12 19:26