【发布时间】:2018-06-08 11:48:06
【问题描述】:
我正在动态创建按钮并为每个按钮动态创建一个下拉菜单。选择按钮后,主按钮上的文本值更新。 我想将主按钮更新的文本值放入 Run_DrawsTest()。 我一直在尝试运行按钮 ID 来获取文本值。通常是 btn_txt=self.ids.button_id_name.text。 由于按钮是动态创建的,我无法预见将创建的数量,我不确定如何获取文本
for i in range(row_count):
drpName.append(DropDown())
btnName = Button(text="Select", size_hint_y= self.size_hint_y)
self.cnt_btns += 1
for e in self.sel:
self.ssbtn = ('tbtn' + str(sbtn))
sbtn += 1
btn = Button(text=e, size_hint_y=None, height=25, id=self.ssbtn)
btn.bind(on_release=lambda btn=btn, dropdown=drpName[i]: dropdown.select(btn.text))
drpName[i].add_widget(btn)
btnName.bind(on_release=drpName[i].open)
drpName[i].bind(on_select=lambda instance, x, btn=btnName: setattr(btn, 'text', x))
self.ids.select_btn.add_widget(btnName)
self.my_btn_names.append(self.ssbtn)
def Run_Draws_Test (self):
counter = 0
vals = [ ]
while counter != self.cnt_btns:
btn_ids = (self.my_btn_names[counter])
txt = ('txt' + str(counter))
s = btn_ids
btn_texts = str(txt + ' = ' + "self.ids." + s + ".text")
vals.append(btn_texts)
executable_code = (vals[counter])
print(executable_code)
time.sleep(3)
exec(str(executable_code))
print(txt)
counter += 1
【问题讨论】:
标签: python-3.x kivy