Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: pist 09. 03. 2011, 22:02:25
-
Zdravím,
Potřebuji vytvořit několik stejných buttonů a příjde mi nepraktické je vypisovat všechny zvlášť viz následující kód:
self.btn1= Button(self.fr, width=4, height=1)
self.btn1.grid(row=0, column=0)
self.btn2 = Button(self.fr, width=4, height=1)
self.btn2.grid(row=0, column=1)
.
.
.
self.btnX = Button(self.fr, width=4, height=1)
self.btnX.grid(row=0, column=X)
zkoušel jsem to řešit cyklem:
for i in range(13):
self.btn+str(i) = Button(self.fr, width=4, height=1)
self.btn+str(i).grid(row=0, column=i)
Bohužel mi to vyhodilo chybu.
Jde to řešit nějakým podobným způsobem nebo musím vypisovat každé tlačítko zvlášť?
Děkuji za odpovědi
-
for i in range(13):
vars()['btn%s % i] = Button(self.fr, width=4, height=1)
eval('btn%s' % i).grid(row=0, column=i)
ale je to humus teda... :D
-
Těch možností je víc. Například není nutné ty buttony ukládat do samostatných instančních proměnných, ale lze je uložit do seznamu.
Nebo něco jako
self.setattr('btn%u' % i, Button(self.fr, width=4, height=1))
self.getattr('btn%u' % i).grid(row=0, column=i)
-
Syntakticky to mám blbě, ale jako návod by to mělo stačit.