【问题标题】:Kivy: Check if a function is already scheduledKivy:检查一个函数是否已经被调度
【发布时间】:2015-07-06 20:14:49
【问题描述】:

有没有办法检查某个功能是否已经安排好了?我正在查看 Clock 方法,但没有看到我可以使用的任何东西。我试图避免重新安排一个函数(Clock.unschedule(func) -> Clock.schedule_interval(func, dt)),除非它已经安排好了。

【问题讨论】:

    标签: python python-2.7 kivy


    【解决方案1】:

    您可以使用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列表的内容。

    【讨论】:

    • 这成功了!我不知道这是否出于某种原因不可取,但它似乎运作良好。
    猜你喜欢
    • 1970-01-01
    • 2011-07-06
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2021-10-05
    相关资源
    最近更新 更多