¿Cómo hacer que la checkbox kivy pase su estado?

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) 

Ignorando todas las clases y .run () y esas cosas, debería ser obvio lo que estoy tratando de hacer aquí. ¿Qué estoy haciendo mal?

La solución es la siguiente. Por favor, consulte el siguiente ejemplo para más detalles.

Fragmentos

main.kv

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

main.py

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

Ejemplo

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 : 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" 

Salida

introduzca la descripción de la imagen aquí