[英]Return text from radio buttons
我正在尝试仅使用纯python在kivy中创建搜索栏。 有没有办法通过选择单选按钮将某个字符串返回给函数
这是我程序中的一小段。 如果您可以使用纯python代码回答问题,将很有帮助
class avbl_bk(Screen):
def __init__(self,**kwargs):
super(avbl_bk,self).__init__(**kwargs)
blayout=BoxLayout(orientation="vertical")
check=BoxLayout()
search_layout=BoxLayout(spacing=10,padding=5)
search_label=Label(text="Search: ",size_hint_x=0.5)
search_box=TextInput(multiline=False,font_size=40,size_hint_x=0.8)
search=Button(text="Search",size_hint=(.3,0.8))
chk1=CheckBox(group='1')
chk2=CheckBox(group='1')
chk3=CheckBox(group='1')
chk4=CheckBox(group='1')
chk5=CheckBox(group='1')
chk6=CheckBox(group='1')
filters=["ISBN","Book","Genre","Author","Publisher","Copies"]
for i in range(6):
check.add_widget(Label(text=filters[i]))
check.add_widget(eval(("chk"+str(i+1))))
search_layout.add_widget(search_label)
search_layout.add_widget(search_box)
search_layout.add_widget(check)
search_layout.add_widget(search)
blayout.add_widget(search_layout)
self.add_widget(blayout)
我想使用字符串在数据库中执行查询,并在按下搜索按钮时显示它。 那我该怎么办呢?
StringProperty
类型的search_by
App.get_running_app()
函数访问应用程序实例 on_active()
方法中使用instance.text
填充search_type
search_by
class CustomCheckBox(CheckBox):
text = StringProperty('')
def on_active(self, instance, value):
if value:
print(f'\tThe checkbox text={instance.text} is active')
App.get_running_app().root.search_by = instance.text
class avbl_bk(Screen):
search_by = StringProperty('')
def __init__(self, **kwargs):
super(avbl_bk, self).__init__(**kwargs)
...
有没有办法通过选择单选按钮将某个字符串返回给函数
解决方法如下:
CheckBox
小部件的class CustomCheckBox
StringProperty
类型的text
on_active
事件 for
循环内使用group='1'
和text=text=filters[i]
实例化CustomCheckBox
class CustomCheckBox(CheckBox):
text = StringProperty('')
def on_active(self, instance, value):
if value:
print(f'\tThe checkbox text={instance.text} is active')
class avbl_bk(Screen):
def __init__(self, **kwargs):
super(avbl_bk, self).__init__(**kwargs)
...
search = Button(text="Search", size_hint=(.3, 0.8))
filters = ["ISBN", "Book", "Genre", "Author", "Publisher", "Copies"]
for i in range(6):
check.add_widget(Label(text=filters[i]))
check.add_widget(CustomCheckBox(group='1', text=filters[i]))
search_layout.add_widget(search_label)
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.