我想基於外部文件爲Python和Kivy動態創建一些按鈕。在Python中循環內動態創建變量
到目前爲止,我設法網絡抓取文件,讀取它並創建小部件。問題是我需要這些小部件有一個唯一的var名稱,我看不到一種方法來實現這一點。
def build(self):
#main layout
menu_box = BoxLayout(orientation="horizontal")
#web scraping
try:
WebLeida = request.urlopen("http://coznothingisforever.webs.com/Yoloplanner/Yoloplanner.txt").read().decode('utf8')
WebParsed = ast.literal_eval(WebLeida)
#for each item
for i in WebParsed:
#create a button
boton = Button(font_size=16,
size_hint_y=None,
height=100,
text=i["dia"] + " - " + i["hora"])
#bind the events
boton.bind(print("testing"))
#add the new created button to the layout
menu_box.add_widget(boton)
except:
print("Something went wrong")
#run the main layout
return menu_box
這樣做的問題是,所有的按鈕將被命名爲「BOTON」,所以,當我需要使用特定的功能,如boton.bind程序將不知道該使用哪一個。
有什麼建議?
另外,Web抓取是實現這一目標的最佳方式嗎?
[This](http://stackoverflow.com/questions/35856891/how-can-i-make-a-lot-of-buttons-at-dynamic-in-kv-language/35867156#35867156 )可能對您有所幫助。 – jligeza
這是有點粗暴,但你有嘗試的內部:'exec(「self.boton」+ str(i))= ...' ? – Mixone