Я работаю над графическим интерфейсом, и я хотел бы создать переменное количество кнопок, в зависимости от того, что вводит пользователь. Как мне это сделать?Создание объектов obj0 через objN в Python, для произвольного N?
Точнее, пользователь открывает файл данных с набором наборов данных N. Я хотел бы создать кнопки N с i-й кнопкой, имеющей имя i-го набора данных.
Что-то вроде ... (концептуально, очевидно, что это не будет работать)
import wx
# create sizer
hbox1=wx.GridBagSizer(4,4)
# create file button and add to sizer
fbtn = wx.Button(dv, label=file)
hbox1.Add(fbtn, pos=(jf,0))
# read file to get dataset names
dsetnames=[<dataset names for file>]
# create bottons for datasets found in file
jd=0 # datasets
for ds in dsetnames:
self.dbtn<jd> = wx.Button(dv, label=ds)
hbox1.Add(self.dbtn<jd>, pos=(jd,1))
jd+=1
Спасибо.
Я нашел a решение, но у меня нет права еще отвечать на вопросы, поэтому я добавлю его здесь. Как правило, решение здесь заключается в создании словаря с именами объектов в качестве ключей и объектов в качестве значений.
import wx
dv=wx.Panel(self)
# create sizer
hbox1=wx.GridBagSizer(4,4)
# create file button and add to sizer
# filename file input by user
fbtn = wx.Button(dv, label=file)
hbox1.Add(fbtn, pos=(jf,0))
# read file to get dataset names
dsetnames=[<dataset names for file>]
# create empty dictionary for objects
self.dbtn=dict()
# create bottons for datasets found in file
jd=0 # datasets
for ds in dsetnames:
objname=ds
self.dbtn.update({objname:wx.Button(dv, label=ds)}) # update dictionary with individual objects
hbox1.Add(self.dbtn[objname], pos=(jd,1))
jd+=1
Я считаю, что это может быть связано.
Create Hash for Arbitrary Objects?
Используйте кнопку Список объектов –