繁体   English   中英

Kivy Label: on_touch_down 事件在屏幕各处触发

[英]Kivy Label: on_touch_down event is triggered everywhere in the screen

我想在单击标签时触发我的功能,但实际上,它也是在按钮上触发的! (并且在所有屏幕上更准确)。

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()

好吧,不管怎样都不漂亮……它有效!

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()

文档可以在这里找到

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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM