Python/Kivy:双击标签时调用函数 [英] Python/Kivy : call function when double click on label

查看:94
本文介绍了Python/Kivy:双击标签时调用函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

double单击label时如何调用函数?现在,它会调用single点击.用什么代替on_ref_press?

How to call function when double click on label? Now it call on single click .What use instead of on_ref_press?

layout.add_widget(
    MyLabel(text='[ref=world]' + str('Test') + '[/ref]', padding_x=10,
            size_hint_x=.35, halign='left',
            markup=True, on_ref_press=partial(self.xyz, 10)))

推荐答案

一个可能的解决方案是创建事件,在下面的代码中,我显示一个示例:

A possible solution is to create the event, in the following code I show an example:

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

这篇关于Python/Kivy:双击标签时调用函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆