Tkinter toggle a Label Widget based on checkbutton value
Eric Brunel
see.signature at no.spam
Thu Jul 5 04:43:07 EDT 2007
On Wed, 04 Jul 2007 21:51:34 +0200, O.R.Senthil Kumaran
<orsenthil at users.sourceforge.net> wrote:
> Following is a tk code, which will display a checkbutton, and when
> checkbox is
> enabled, it will show the below present Label.
>
> What I was trying is, when checkbox is enabled the Label should be shown
> and
> when checkbox is disabled, the window should look like before.
>
> But, I am finding that once enabled (shown), its not
> very-straightforward to
> hide it from the window.
>
> Any suggestions on how can i make this checkbutton effect.
> 1) Press Enable IP, the Label IP should be shown.
> 2) Toggle Enable IP (So that its unset). the Label IP should not be
> shown.
>
> #!/usr/bin/python
> from Tkinter import *
> root = Tk()
> root.title('something')
> x = StringVar()
> def display():
> if x.get():
> ip = Label(root,text="IP:")
> ip.grid(row=3,column=0)
>
> proxy = Checkbutton(root, text="Enable IP:", variable =
> x,onvalue="proxy",
> offvalue="",command=display)
> proxy.grid(row=2,column=0)
> root.mainloop()
Wojciech gave a perfectly valid answer that'll work in all cases.
Here is another one, that you may or may not be able to use, which
consists in using the same Tkinter variable for your check-button's value
and your label's text:
--------------------------------------------------
from Tkinter import *
root = Tk()
labelString = StringVar()
b = Checkbutton(root, text="Enable IP:", variable=labelString,
onvalue='IP:', offvalue='')
b.grid(row=2, column=0)
Label(root, textvariable=labelString).grid(row=3, column=0)
root.mainloop()
--------------------------------------------------
This doesn't really make the label "disappear" when the check-button is
off, but simply sets its text to the empty string.
HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
More information about the Python-list
mailing list