2017-11-26 8 views
0

私はkivyで簡単なストップウォッチを構築しようとしていますが、interruptible clockを使用して1/100秒の間隔を適切に作成したいと考えています(通常の時計は十分に正確ではありません)。しかし、私は実際にinterruptible clockを正しく統合する方法を理解できません。intteruptible kivyクロックの使い方は?

私はそれをよく読んしようとしましたが、しかしこれは全くClock.schedule_interval目的球を変更していないようでした。この

class TimerApp(App): 
    def build_config(self, config): 
     config.setdefaults('section1', { 
      'KIVY_CLOCK': 'interrupt' 
     }) 

    def build(self): 
     config = self.config 
     return AppLayout() 

を試してみました。これについて適切な方法は何でしょうか、設定が変更されたことをどのように確認できますか?

答えて

1

次の例では、違いを説明しよう:

予告:私はデフォルトの設定では、このテスト

のために1秒(1000msの)にタイムアウトを設定します。

from kivy.app import App 
from kivy.clock import Clock 
from kivy.uix.boxlayout import BoxLayout 
import time 

t = int(round(time.time() * 1000)) #current time in millisecond 


def call_back(dt): 
    global t 
    t1 = int(round(time.time() * 1000)) 
    print t1 - t 
    t = t1 

clock = Clock.schedule_interval(call_back, 1) 


class TimerApp(App): 

    def build(self): 
     return BoxLayout() 

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

出力は:

1002 
1003 
1006 
1004 
1006 
1005 
1004 
1001 
1003 
1002 
1003 

あなたは出力は常に見ることができるように(ほぼ)> 1000年ミリ秒

割り込みの設定の場合:

... 
from kivy.config import Config 

... 
class TimerApp(App): 

    def build(self): 
     Config.set('graphics', 'KIVY_CLOCK', 'interrupt') 
     Config.write() 
     return BoxLayout() 
... 

と出力されます:

997 
998 
1000 
1000 
998 
998 
1000 
1001 
1000 
関連する問題