get value of selected checkbox in kivy(获取kivy中选中复选框的值)
问题描述
import sqlite3 as lite
from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
Window.size = (600, 325)
class UserGroup(Screen):
def insert_data(self, arg1,arg2):
print(arg1)
print(arg2)
class FactUserGroup(App):
def build(self):
self.root = Builder.load_file('test.kv')
return self.root
if __name__ == '__main__':
FactUserGroup().run()
test.kv
<CustomLabel@Label>:
text_size: self.size
valign: "middle"
padding_x: 5
<SingleLineTextInput@TextInput>:
multiline: False
<GreenButton@Button>:
background_color: 1, 1, 1, 1
size_hint_y: None
height: self.parent.height * 0.120
UserGroup
GridLayout:
cols: 2
padding : 30,30
spacing: 20, 20
row_default_height: '30dp'
Label:
text: 'Male'
text_size: self.size
valign: 'middle'
CheckBox:
group: 'check'
id : chk
Label:
text: 'Female'
text_size: self.size
valign: 'middle'
CheckBox:
group: 'check'
CustomLabel:
text: 'age'
text_size: self.size
valign: 'middle'
SingleLineTextInput:
id: age
GreenButton:
text: 'Ok'
on_press: root.insert_data(chk.text,age.text)
GreenButton:
text: 'Cancel'
on_press: app.stop()
如何获取复选框的值?我正在使用 age.text 获取年龄文本框的值,但我不知道复选框的值?
单击确定"时,如何获取选中的复选框值并传入 root.insert_data.
How to get value of checkbox?I am getting value of age textbox using age.text but checkbox value i don't know?
When click on 'Ok' then How to get selected checkbox value and pass in root.insert_data.
推荐答案
您可以通过其 active
属性来获取复选框的选中状态,因此请尝试更改:
You can get the checked state of a checkbox with its active
property, so try change:
GreenButton:
text: 'Ok'
on_press: root.insert_data(chk.active ,age.text)
在此代码段中,chk.text
已更改为 chk.active
,这对我很有效.
In this snippet chk.text
was changed to chk.active
which works for me properly.
在 https://kivy.org/docs 查看更多关于 kivy 复选框的参考资料/api-kivy.uix.checkbox.html
希望对您有所帮助.试试看吧.
Hope it helps. Give it a try.
因此,为了能够获取每个复选框的属性和文本输入,您可以将 ObjectProperties
分配给小部件,并且可以将它们链接到您的 test.py代码>文件.
So in order to be able to get the properties of each checkbox and the text input you can assign ObjectProperties
to the widgets, and you can link them to your test.py
file.
修改后的来源:
from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.properties import ObjectProperty
Window.size = (600, 325)
class UserGroup(Screen):
male = ObjectProperty(None)
female = ObjectProperty(None)
age = ObjectProperty(None)
def insert_data(self):
if self.male.active:
print('Male')
elif self.female.active:
print('Female')
else:
print('No gender selected')
print(self.age.text)
class FactUserGroup(App):
def build(self):
self.root = Builder.load_file('test.kv')
return self.root
if __name__ == '__main__':
FactUserGroup().run()
在 .py
文件中,您可以找到 ObjectProperty
的新导入.您还可以看到,在 UserGroup
中定义了三个新属性来与视图交互,并且在 UserGroup.insert_data
中的修改非常简单.
In the .py
file you can find a new import of ObjectProperty
.
Also you can see that three new properties were defined in UserGroup
to interact with the view, and the modifications in UserGroup.insert_data
are straightforward.
<CustomLabel@Label>:
text_size: self.size
valign: "middle"
padding_x: 5
<SingleLineTextInput@TextInput>:
multiline: False
<GreenButton@Button>:
background_color: 1, 1, 1, 1
size_hint_y: None
height: self.parent.height * 0.120
UserGroup
male: chk_male
female: chk_female
age: txt_age
GridLayout:
cols: 2
padding : 30,30
spacing: 20, 20
row_default_height: '30dp'
Label:
text: 'Male'
text_size: self.size
valign: 'middle'
CheckBox:
group: 'check'
id : chk_male
Label:
text: 'Female'
text_size: self.size
valign: 'middle'
CheckBox:
group: 'check'
id: chk_female
CustomLabel:
text: 'age'
text_size: self.size
valign: 'middle'
SingleLineTextInput:
id: txt_age
GreenButton:
text: 'Ok'
on_press: root.insert_data()
GreenButton:
text: 'Cancel'
on_press: app.stop()
在 .kv
文件中,两个复选框的 id 和文本输入被重命名为 chk_male
、chk_female
和 txt_age
分别.
In the .kv
file the ids of the two checkboxes and the text input are renamed to chk_male
, chk_female
and txt_age
respectively.
您还可以看到,对象属性链接是在 UserGroup
部分的开头定义的.
Also you can see that the object property links are defined at the beginning of the UserGroup
section.
希望它有意义并符合您的要求.
Hope it makes sense and match your requirements.
这篇关于获取kivy中选中复选框的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:获取kivy中选中复选框的值


基础教程推荐
- 修改列表中的数据帧不起作用 2022-01-01
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01
- 包装空间模型 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- 求两个直方图的卷积 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01