如何使kivy复选框传递其状态 [英] How to make kivy checkbox pass down it's state
本文介绍了如何使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屋!
查看全文