2017-05-24 50 views
0

我正在測試kivy.clock.Clock.schedule_interval函數的功能。Clock.schedule_interval不計劃回調

我的schedule_interval沒有調用測試函數,而是沒有任何錯誤地退出。

什麼是我不理解?我已經通過文檔正確地建模了這個測試。

from kivy.clock import Clock 

class TestClass: 

    def __init__(self): 
     print("function __init__.") 
     schedule = Clock.schedule_interval(self.test, 1) 

    def test(self, dt): 
     print("function test.") 

if __name__ == '__main__': 
    a = TestClass() 

預期輸出應該是:

function __init__. 
function test. 
function test. 
function test. 
function test. 
function test. 
function test. 

相反,我剛:

function __init__. 

回答

2

的主要問題是,前一秒通行證程序退出。我不知道,但我也假設必須有一個kivy應用程序才能使時鐘工作(我試圖讓一個空的while循環而不是運行一個應用程序,但這並沒有幫助)。

這裏有一個簡單的辦法,讓所需要的輸出:

from kivy.clock import Clock 
from kivy.base import runTouchApp 


class TestClass: 
    def __init__(self, **kwargs): 
     print("function __init__.") 
     schedule = Clock.schedule_interval(self.test, 1) 

    def test(self, dt): 
     print("function test.") 


if __name__ == '__main__': 
    test = TestClass() 
    runTouchApp() # run an empty app so the program doesn't close 

否則考慮讓來自kivy的AppTestClass繼承與TestClass().run()運行它 - 你會得到同樣的結果。

+0

非常感謝您的解釋。它適用於兩種方式。 –