我想在点击标签时触发我的函数,但实际上,它也是在按钮上触发的!(更准确地说,在所有屏幕上)。
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()发布于 2021-06-22 23:44:59
好吧,不是很漂亮,但不管怎么说...它起作用了!
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()发布于 2021-06-22 23:50:26
文档可以在here中找到
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()https://stackoverflow.com/questions/68086393
复制相似问题