2016-12-02 13 views
0

on_releaseを遅らせるための方法があります:.kvファイル内のアクションKivy on_release:.kvファイルのフィーチャーを遅らせるか待つか?

コード:私はroot.clear()

例えば遅延する

on_press: inpexpr.source = root.calculate(entry.text) 
on_release: outpexpr.source = root.displ(entry.text) 
on_release: 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

、イムは、現在kivy.Clock時間遅延が発生しますメソッドの内部で、KVファイルから別のメソッドを呼び出そうとした後、時間のx量の後にそれとは明らか()メソッドを呼び出します。それでも実際に.kvファイル内でそれを行う方法があれば、教えてください。 –

答えて

0

Clockを使用すると、1回だけ配信されたイベントを設定できます。 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()) 
関連する問題