On Tue, Jan 27, 2009 at 2:51 PM, vtcodger <donaldken...@gmail.com> wrote: > > I came across a problem that probably has a simple, clever, answer -- but it > is eluding me. I was trying to create a set of tab buttons on a Tkinter > page using Buttons. These are created dynamically when the user loads a > file. I don't know in advance how many files will get opened, so I want to > have a variable number of tabs. >
You could consider using a Notebook widget. > So we have a Frame T; and an array of tabs XT[]; and a function > switch_tabs(n) that will handle the details of switching the data base, > titles, etc. I compute the tab number: > > Whoopsie = len(XT) > > And I create a new Button: > > XT.append(Button(T,text="Viola:New Tab",command=lambda: > switch_tabs(whoopsie)) > > It all works fine except for this one minor detail. Whoopsie can't be a > constant because I don't know in advance what constant to use. This makes my head hurts. Email's title was: "How to set a constant in lambda", but you just said you don't want it. > And if > whoopsie is a variable, it apparently is evaluated at execution time, and > will have the then current value of whoopsie, not the value I wanted to set > at creation time. Constants and variables do not exist at Python, they are all names. Can I assume that by "constant" you mean a immutable type and by "variable" a mutable type ? You could have put better names for these things instead of "whoopsie, Whoopsie" to help a bit. So, what is switch_tabs supposed to do ? And how this 'whoopsie' thing affects it ? Does it move you to the latest tab created ? If this is the case, you could consider a pre-defined value like 'end' or even None maybe so switch_tabs can check for these values and understand they mean: "move to the latest tab". > I tried everything I could think of including > copy.copy(whoopsie) to get a constant set so that switch_tabs could know > which tab to switch to. > > Couldn't do it. I was starting to look at tracing back through stack frames > when it came to me that RadioButtons unlike generic Buttons have a > variable-value attribute pair that behaves as I desire. What do you desire ? > So this > manifestation of the problem is worked around. But I expect that I'll see > this problem again in some other guise. -- -- Guilherme H. Polo Goncalves _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss