【问题标题】:Kivy--how to bind a function to a checkbox when activatedKivy - 如何在激活时将功能绑定到复选框
【发布时间】:2017-01-19 15:29:23
【问题描述】:

我有一个使用 kivy 复选框的 Python 程序。

有没有办法让程序在复选框被禁用/启用时立即调用函数?

请注意,active 属性不会起作用,因为这只是一次,必须使用无限 while 循环来检查用户是否激活了它,这会使一切变得复杂。

【问题讨论】:

    标签: python checkbox kivy


    【解决方案1】:

    你可以这样做:

    from kivy.uix.checkbox import CheckBox
    

    ...

    def do_something(checkbox, value):
        # Do something
    
    checkbox = CheckBox()
    checkbox.bind(active=do_something)
    

    【讨论】:

    • 好吧,我试试,不知道 you8 能这么简单,因为文档中说 active 是一个布尔属性
    • @Cid-El 很高兴接受答案。谢谢
    • 谢谢,我认为这也很好,但据我所知,堆栈溢出是为了接受回答问题的答案,直到现在我还没有尝试过,
    • 另一件事,如果是你对我的问题投了反对票,你这样做的理由是什么?我的问题是完全可以接受的,据我所知,它不是重复的,所以如果你的问题有问题,而不是仅仅投反对票,并要求我接受答案,你介意告诉我什么是问错了吗?
    • 哦,我必须道歉,我错了,我疯了,对不起,你的回答完全符合我的目的
    【解决方案2】:

    您可以在其中使用带有 lambda 函数的 on_release 关键字。喜欢:

    from kivy.uix.checkbox import CheckBox
    
    def do_something(checkbox, active, value): ## value is optional
        if active:
           print(value)
     
    
    checkbox = CheckBox()
    checkbox.bind(on_release = lambda x: do_something(x, x.active, "hello"))
    

    【讨论】:

      猜你喜欢
      • 2016-06-10
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      • 2011-02-03
      • 1970-01-01
      相关资源
      最近更新 更多