如何通过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()
我想在这样的 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()