首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kivy Label:屏幕上到处都会触发on_touch_down事件

Kivy Label:屏幕上到处都会触发on_touch_down事件
EN

Stack Overflow用户
提问于 2021-06-22 23:24:06
回答 2查看 82关注 0票数 0

我想在点击标签时触发我的函数,但实际上,它也是在按钮上触发的!(更准确地说,在所有屏幕上)。

代码语言:javascript
复制
from kivy.lang.builder import Builder
from kivy.app import App
from kivy.uix.label import Label

KV = """
BoxLayout:
    Button:
        text: "BUTTON"
"""

class MyFirstKivyApp(App):
    def build(self):
        self.box = Builder.load_string(KV)
        l = Label(text="LABEL")
        l.bind(on_touch_down=self.label_click)
        self.box.add_widget(l)
        return self.box

    def on_kv_post(self, base_widget):
        super().on_kv_post(base_widget)


    def label_click(self, w,event):
        print("Am I only triggered when touching the label ?")

MyFirstKivyApp().run()
EN

回答 2

Stack Overflow用户

发布于 2021-06-22 23:44:59

好吧,不是很漂亮,但不管怎么说...它起作用了!

代码语言:javascript
复制
from kivy.lang.builder import Builder
from kivy.app import App
from kivy.uix.label import Label

KV = """
BoxLayout:
    Button:
        text: "BUTTON"
"""

class MyFirstKivyApp(App):
    def build(self):
        self.box = Builder.load_string(KV)
        l = Label(text="LABEL")
        l.bind(on_touch_down=self.label_click)
        self.box.add_widget(l)
        return self.box

    def on_kv_post(self, base_widget):
        super().on_kv_post(base_widget)


    def label_click(self, w,touch):
        if w.collide_point(*touch.pos):
            print("Am I only triggered when touching the label ?")

MyFirstKivyApp().run()
票数 0
EN

Stack Overflow用户

发布于 2021-06-22 23:50:26

文档可以在here中找到

代码语言:javascript
复制
from kivy.lang.builder import Builder
from kivy.app import App
from kivy.uix.label import Label

KV = """
BoxLayout:
    Button:
        text: "BUTTON"
"""

class MyFirstKivyApp(App):
    def build(self):
        self.box = Builder.load_string(KV)
        l = Label(text="[ref=label]Label[/ref]", markup=True)
        l.bind(on_ref_press=self.label_click)
        self.box.add_widget(l)
        return self.box

    def on_kv_post(self, base_widget):
        super().on_kv_post(base_widget)


    def label_click(self, w,event):
        print("Am I only triggered when touching the label ?")

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

https://stackoverflow.com/questions/68086393

复制
相关文章

相似问题

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