如何使kivy复选框传递其状态 [英] How to make kivy checkbox pass down it's state

查看:364
本文介绍了如何使kivy复选框传递其状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Main.py

def if_active(self, state):
    If state is true:
        print "True"
    else:
        print "False"

main.kv

CheckBox
    on_state: root.if_active(self.state)

忽略所有类和.run()之类的东西, 很明显,我要在这里做什么 我在做什么错了?

Ignoring all the classes and .run() and that stuff, It should be obvious what I'm trying to do here What am I doing wrong?

推荐答案

解决方案如下.有关详细信息,请参见下面的示例.

The solution is as follow. Please refer to the example below for details.

CheckBox:
    on_active: root.if_active(self.active)

main.py

def if_active(self, state):
    if state:
        print "True"
    else:
        print "False"

示例

main.py

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.core.window import Window


class CheckBoxDemo(BoxLayout):
    def on_checkbox_active(self, value):
        if value:
            print("The checkbox is active because value={}".format(value))
        else:
            print("The checkbox is inactive because value={}".format(value))

    def on_radiobutton_active(self, value):
        if value:
            print("The radiobutton is active because value={}".format(value))
        else:
            print("The radiobutton is inactive because value={}".format(value))


class TestApp(App):
    Window.size = (360, 360)
    title = "Kivy Checkbox & RadioButton Demo"

    def build(self):
        return CheckBoxDemo()


if __name__ == "__main__":
    TestApp().run()

test.kv

#:kivy 1.10.0

<CheckBoxDemo>:
    orientation: "vertical"
    Label:
        size_hint: 1, 0.2
        text: "Checkbox"

    GridLayout:
        cols: 2

        CheckBox:
            on_active: root.on_checkbox_active(self.active)
        CheckBox:

        CheckBox:
            group: "radiobutton1"
            on_active: root.on_radiobutton_active(self.active)
        CheckBox:
            group: "radiobutton1"
            on_active: root.on_radiobutton_active(self.active)

        CheckBox:
            group: "radiobutton2"
        CheckBox:
            group: "radiobutton2"

输出

这篇关于如何使kivy复选框传递其状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆