[Tkinter-discuss] Hide/Show using withdraw()/deiconify()
Fredrik Lundh
fredrik at pythonware.com
Sun Sep 7 12:29:15 CEST 2008
Amit Finkler wrote:
> RunFrame = Tkinter.Frame(win1, bd = 2, relief = 'groove')
your use of excessive whitespace doesn't exactly make it easier to read
your code... I suggest reading PEP 8.
> Run2D = Tkinter.Radiobutton(RunFrame, text = text, variable =
> hs, value = mode, command = Hide_Show_2D(hs))
> Run2D.pack(side = 'left')
when you write
command=Hide_Show_2D(hs)
Python will *call* the function, take the return value from the
function, and pass *that* to the Radiobutton. try inserting a
lambda:
command=lambda: Hide_Show_2D(hs)
("lambda: expression" creates an anonymous function that evaluates the
expression when called).
> def Hide_Show_2D(value):
> if value == '2':
> win4.withdraw()
> else:
> win4.deiconify()
since "value" is a Tkinter StringVar, you have to replace the test with
value.get() == '2'
(alternatively, change the lambda to "lambda: Hide_Show_2D(hs.get())")
</F>
More information about the Tkinter-discuss
mailing list