Kivy

2016-03-19 34 views
1

2 zaman çizelgelerini kontrol etme problemi Ben bir düğme var. Bu tuşa basmakla, 5 saniye sonra bir eylemi ve her 1 saniyeden sonra 2. eylemin sonsuz zamanlarını almak istiyorum. Ama ben sadece aksiyonun tamamlanmasından sonra 2. aksiyonu başlatmaya ihtiyacım var.Kivy

Kodum:

#!/usr/bin/kivy 
import kivy 
kivy.require('1.7.2') 

from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.screenmanager import ScreenManager, Screen 
from kivy.uix.button import Button 
from kivy.clock import Clock 
from functools import partial 

Builder.load_string(''' 
<MenuScreen>:    
    Button: 
     id:timer1 
     text: 'click me' 
     on_press: root.val() 
''') 
class MenuScreen(Screen): 
    def val(self): 
     Clock.schedule_once(self.my_callback_timer1, 5) 
     Clock.schedule_interval(self.my_callback_timer2, 1) 
    def my_callback_timer1(self, interval): 
     print "5 sec code executed" 
    def my_callback_timer2(self, interval): 
     print "1 sec code executed" 


sm = ScreenManager() 
menu = MenuScreen(name='menu') 
sm.add_widget(menu) 

class MainApp(App): 
    def build(self): 
     return sm 

if __name__ == '__main__': 
    MainApp().run() 

Bu verir o/s olarak:

1 sec code executed 
1 sec code executed 
1 sec code executed 
1 sec code executed 
5 sec code executed 
1 sec code executed 
... 
... 

ve hangi ihtiyacım geçerli:

5 sec code executed 
(wait 5 sec) 
1 sec code executed 
1 sec code executed 
1 sec code executed 
... 

cevap

0

Programı birinci callback'inde ikinci saat:

class MenuScreen(Screen): 
    def val(self): 
     Clock.schedule_once(self.my_callback_timer1, 5) 

    def my_callback_timer1(self, interval): 
     print "5 sec code executed" 
     Clock.schedule_interval(self.my_callback_timer2, 1) 
    def my_callback_timer2(self, interval): 
     print "1 sec code executed" 
+0

Teşekkürler ... ben zaten anladım ... cevabınla aynı şekilde ... :) –