2016-12-02 57 views
0

是否有延遲on_release的方式:在.kv文件操作Kivy on_release:延遲或等待.kv文件中的功能?

代碼:

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()取決於在dis中創建一個文件pl()方法,以刪除文件。看來,on_release:root.clear()正在執行太快。

這裏如何實現時間延遲?

+0

退一步來說,即時通訊目前正試圖調用從KV文件的另一種方法,該方法裏面會有一個kivy.Clock時間延遲,再經過時間量X調用不同於clear()方法。但是,如果有任何方法可以在.kv文件中實際執行,請告訴我。 –

回答

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