Kivy:检查功能是否已安排
Kivy: Check if a function is already scheduled
有没有办法检查是否已经安排了一个功能?我正在查看 Clock
方法,但没有看到任何我可以使用的方法。我试图避免函数的重新安排(Clock.unschedule(func)
-> Clock.schedule_interval(func, dt)
),除非它已经安排好开始。
您可以使用 kivy.clock.Clock.get_events()
获取已安排的事件列表:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_string("""
#:import Clock kivy.clock.Clock
<MyWidget>:
Button:
text: "Print events"
on_press: print(Clock.get_events())
Button:
text: "Add event"
on_press: Clock.schedule_once(root.my_callback, 5)
""")
class MyWidget(BoxLayout):
def my_callback(self, arg):
print("my_callback")
class MyApp(App):
def build(self):
return MyWidget()
if __name__ == '__main__':
MyApp().run()
旧答案:
不是很干净的方法,但您可以检查 kivy.clock.Clock._events
列表的内容。
有没有办法检查是否已经安排了一个功能?我正在查看 Clock
方法,但没有看到任何我可以使用的方法。我试图避免函数的重新安排(Clock.unschedule(func)
-> Clock.schedule_interval(func, dt)
),除非它已经安排好开始。
您可以使用 kivy.clock.Clock.get_events()
获取已安排的事件列表:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_string("""
#:import Clock kivy.clock.Clock
<MyWidget>:
Button:
text: "Print events"
on_press: print(Clock.get_events())
Button:
text: "Add event"
on_press: Clock.schedule_once(root.my_callback, 5)
""")
class MyWidget(BoxLayout):
def my_callback(self, arg):
print("my_callback")
class MyApp(App):
def build(self):
return MyWidget()
if __name__ == '__main__':
MyApp().run()
旧答案:
不是很干净的方法,但您可以检查 kivy.clock.Clock._events
列表的内容。