我想从 dict 访问密钥。这是一个文本输入。我给那个 textinput 一个 id:word。如果该 textinput 中的任何文本与该 dict 中的任何这些键或值相匹配,则应更改标签的文本以显示一些文本。我可以从 dict 访问键或值。
但问题是当我在 Dict.keys(): 中使用 if self.ids.word 时显示一些东西。但是 self.ids.word 是字符串数据,dict 中的任何键或值都是 Nonetype 类。所以 self.ids.word 不能在字典中。原因 str 不能在 dict 中(而 dict 键或值 ls nonetype)
我怎样才能做到这一点?
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
from kivy.uix.popup import Popup
from kivy.properties import *
Dict={"my": "amar","i":"ami","you":"tumi"}
class pop(Popup):
add=StringProperty()
a=app.root.yo.ids.word.text
if a in Dict.keys():
self.add=str(a) + str(Dict.get(a))
class yo(BoxLayout):
def pop(self):
po=pop()
po.open()
class go(BoxLayout):
main=ObjectProperty(None)
def yo(self):
self.clear_widgets()
self.main=yo()
self.add_widget(self.main)
Builder.load_string('''
<go>:
Button:
text:"go"
on_press:root.yo()
<yo>:
TextInput:
id:word
Button:
text:"press"
on_press:root.pop()
<pop>:
title:"pop"
size_hint:0.8,0.3
Label:
text:root.add
''')
我想在弹出标签中获取这些密钥和 ID。我知道在 kivy 我应该使用 a=app.root.yo.ids.word.text。但是如何在 py 代码中访问该 ID?
pop()
。App.get_running_app()
让您的应用实例root.main
获取yo
对象的实例class pop(Popup):
add = StringProperty()
def __init__(self, **kwargs):
super(pop, self).__init__(**kwargs)
a = App.get_running_app().root.main.ids.word.text
if a in Dict.keys():
self.add = str(a) + str(Dict.get(a))
但问题是当我在 Dict.keys(): 中使用 if self.ids.word 时显示一些东西。但是 self.ids.word 是字符串数据,dict 中的任何键或值都是 Nonetype 类。所以 self.ids.word 不能在字典中。原因 str 不能在 dict 中(而 dict 键或值 ls nonetype)
self.ids.word
是对TextInput
对象的引用。因此,您要访问对象的text
属性TextInput
。
替换a = self.ids.word
为a = self.ids.word.text
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句