[EMAIL PROTECTED] schrieb:
On Jun 13, 11:21 am, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote:
[EMAIL PROTECTED] schrieb:



I have twenty-five checkboxes I need to create (don't ask):
self.checkbox1 = ...
self.checkbox2 = ...
.
.
.
self.checkbox25 = ...
Right now, my code has 25 lines in it, one for each checkbox, since
these are all variables.
Is there a way to write a loop so that I can have fewer lines of code
but still keep the variables?
I've tried:
for o in xrange(25):
    self.checkbox[o] = ...
which didn't work, and
for o in xrange(25):
    self.checkbox[''%d'%(o)] = ...
which also didn't work.
Both give the error message: "Attribute error: Main.App has no
attribute "checkbox"", which clearly indicates that I'm not keeping
the "variability" aspect I want.
Is there a way?
Keep either a list or dictionary around. Like this:

checkboxes = []

for o in xrange(25):
     checkboxes.append(....create a checkbox...)

self.checkboxes = checkboxes

Diez

I don't understand... how do I then complete the assignment statement?

If I have:

self.checkbox1 = xrc.XRCCTRL(self.panel01, 'Checkbox1')
.
.
.
self.checkbox25 = xrc.XRCCTRL(self.panel01, 'Checkbox25')

using your method, wouldn't I still need to figure out my original
question?

If I have a list of checkboxes, then I'll have:

checkboxes = [checkbox1, checkbox2 ... checkbox25]

in which case I'd still need to figure out how to get the variable at
the end of checkbox to do the rest of the "=" statement.

I don't fully understand that. But if your code is uniform and looks like the above, it appears that

for o in xrange(25):
    checkboxes.append(xrc.XRCCTRL(self.panel01, 'Checkbox%i' % o))

is the way to go.

Diez
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to