首页
学习
活动
专区
圈层
工具
发布

Kivy双击
EN

Stack Overflow用户
提问于 2015-01-29 02:34:51
回答 1查看 1.9K关注 0票数 0

我有很多问题……)

我正在尝试让Kivy将双击注册为用于添加/删除小部件的运动事件,因为没有“隐藏此小部件选项”……也许是在下一次更新中,因为一次触摸就会让小部件一次又一次地出现和消失(这很烦人)。

我的代码(重要部分)是Python,然后是Kivy:

代码语言:javascript
复制
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:

代码语言:javascript
复制
FloatLayout:
    on_touch_down:
        on_touch_down(nameofwidget)

它给出了一个“KeyError:”is_double_tap“”。

我也尝试过这套解决方案。

代码语言:javascript
复制
is_double_tap: 
    self.on_touch_down

>>> KeyError: "is_double_tap"

另一种解决方案-

代码语言:javascript
复制
on_touch_down: 
    self.touch.is_double_tap = try: self.add_widget(nameofwidget), except: self.remove_widget(nameofwidget)

>>> invalid syntax [ at try:]

另一种解决方案:

代码语言:javascript
复制
on_touch_down: 
 self.on_touch_down.is_double_tap: try [ same as above]
>>> invalid syntax [ at try:]

我认为包括这一点是很重要的。

代码语言:javascript
复制
on_touch_down: 
    try: self.add_widget(nameofwidget)
    except: self.remove_widget(nameofwidget)

在Python端没有定义on_touch_down函数的情况下,工作得很好。

EN

回答 1

Stack Overflow用户

发布于 2015-01-29 05:16:31

代码语言:javascript
复制
class SomeScreen(Screen):
    def on_touch_down(touch, *args): 

这是一个方法,你的问题是你错过了隐式的self。改为将其声明为def on_touch_down(self, touch):

代码语言:javascript
复制
FloatLayout:
    on_touch_down:
        on_touch_down(nameofwidget)

我不认为这会起作用(只会崩溃),因为on_touch_down不是一个已定义的变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28199813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档