我有很多问题......)
我正在尝试让Kivy注册双击作为用于添加/删除小部件的动作事件[因为没有'隐藏此小部件选项'...可能在下次更新中]因为单次触摸向下使小部件出现并消失,一遍又一遍地出现和消失(这很烦人)。
我的代码(重要的位)[Python,其次是Kivy]:
class SomeScreen(Screen):
def on_touch_down(touch, *args):
if touch.is_double_tap:
try: self.add_widget(*args)
except: self.remove_widget(*args)
pass
Kivy:
FloatLayout:
on_touch_down:
on_touch_down(nameofwidget)
它给出了'KeyError:'is_double_tap“'。
我也试过这个解决方案的集合。
is_double_tap:
self.on_touch_down
>>> KeyError: "is_double_tap"
另一种解决方案 -
on_touch_down:
self.touch.is_double_tap = try: self.add_widget(nameofwidget), except: self.remove_widget(nameofwidget)
>>> invalid syntax [ at try:]
另一种解决方案:
on_touch_down:
self.on_touch_down.is_double_tap: try [ same as above]
>>> invalid syntax [ at try:]
我认为包含那个
非常重要on_touch_down:
try: self.add_widget(nameofwidget)
except: self.remove_widget(nameofwidget)
没有在Python端定义on_touch_down函数,效果很好。
答案 0 :(得分:0)
class SomeScreen(Screen):
def on_touch_down(touch, *args):
这是一种方法,您的问题是您错过了隐式self
。将其声明为def on_touch_down(self, touch):
。
FloatLayout:
on_touch_down:
on_touch_down(nameofwidget)
我认为这不会起作用(只是崩溃),因为on_touch_down
不是定义的变量。