如何通过id select widget?

How to select widget by id?

我想在这样的 python 代码上添加许多小部件,

for item in parsed_result:
    time.sleep(0.01)
    btn = Button(text=item['id'], size_hint=(.5, None), height=32,
                 on_release=self.click_device_id)
    txt = TextInput(id=item['id'], text='hello', size_hint=(.5, None),
                    height=32)
    add_widget_target.add_widget(btn)
    add_widget_target.add_widget(txt)

def click_device_id(self, myself):
    # I want print TextInput.text on same level.
    self.go_next_screen()

问题是我无法将 txt 添加为 btn on_release 参数。所以,我需要他们如何 select txt 小部件来打印文本。

像下面这样使用 lambda。

for item in parsed_result:
    time.sleep(0.01)
    txt = TextInput(id=item['id'], size_hint=(.5, None), height=32, text='IMSI', multiline=False)
    btn = Button(text=item['id'], size_hint=(.5, None), height=32,
                     on_release=lambda ti=txt: self.click_device_id(ti.text, txt.text))
    add_widget_target.add_widget(btn)
    add_widget_target.add_widget(txt)

def click_device_id(self, button_text, txt_text):
    print button_text, txt_text
    self.go_next_screen()