kivy double click 双击

from kivy.app import App

from kivy.uix.label import Label


class DoubleClickableLabel(Label):
    def __init__(self, **kwargs):
        Label.__init__(self, **kwargs)
        self.register_event_type('on_double_press')
        if kwargs.get("on_double_press") is not None:
            self.bind(on_double_press=kwargs.get("on_double_press"))

    def on_touch_down(self, touch):
        if touch.is_double_tap:
            self.dispatch('on_double_press', touch)
            return True
        return Label.on_touch_down(self, touch)

    def on_double_press(self, *args):
        pass


class MyApp(App):
    def build(self):
        label = DoubleClickableLabel(text='Hello world', on_double_press=self.callback)
        return label

    def callback(self, *args):
        print("double clicked", args[0])


if __name__ == '__main__':
    MyApp().run()
posted @ 2020-06-19 10:05  Onsunsl  阅读(251)  评论(0编辑  收藏  举报