我正在测试kivy.clock.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__.
答案 0 :(得分:3)
主要问题是你的程序在一秒钟之前退出。我不确定,但我也认为必须有一个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
否则,请考虑将TestClass
继承自kivy的App
并使用TestClass().run()
运行 - 您将获得相同的结果。