Kivy on_release:.kv文件中的延迟或等待功能?

时间:2016-12-02 10:41:46

标签: kivy

有没有办法延迟.kv文件中的on_release:操作

代码:

on_press: inpexpr.source = root.calculate(entry.text)
on_release: outpexpr.source = root.displ(entry.text)
on_release: root.clear()

我希望延迟root.clear()

例如

on_press: inpexpr.source = root.calculate(entry.text)
on_release: outpexpr.source = root.displ(entry.text)
on_release: wait x seconds -> root.clear()

理想情况下,它给出了以前的on_release:调用displ()方法,完成时间为root.clear()取决于在displ()方法中创建文件,以便删除文件。似乎on_release:root.clear()执行得太快了。

如何在这里实施延时?

1 个答案:

答案 0 :(得分:0)

您可以使用Clock设置仅调度一次的事件,甚至是间隔,例如每5秒拨打root.ping()

from kivy.lang import Builder
from kivy.base import runTouchApp
from kivy.uix.boxlayout import BoxLayout
Builder.load_string('''
#:import Clock kivy.clock.Clock
<Test>:
    Button:
        on_release: Clock.schedule_once(root.ping, 3)
    Button:
        on_release: Clock.schedule_interval(root.ping, 5)
''')
class Test(BoxLayout):
    def ping(self, args):
        print('ping', args)
runTouchApp(Test())