The Green Tea Leaf wrote: > > which implies that tk does not store the placement information > > automatically. Assuming that Python's Tkinter behaves the same way you can > > write > > > > def toggle(): > > if mylabel.visible: > > mylabel.pi = mylabel.place_info() > > mylabel.place_forget() > > else: > > mylabel.place(mylabel.pi) > > mylabel.visible = not mylabel.visible > > Unfortunately, it doesn't work. I can see the label flashing when I > press the button but it's not visible unless I press the button again.
I don't understand that sentence. If you press the button the label should disappear. When you press it again it should become visible again. I added some noise to your initial script and saved the placement state: import sys import Tkinter as tk def toggle(): if mylabel.visible: btnToggle["text"] = "Show Example" print "Now you don't" mylabel.place_forget() else: mylabel.place(mylabel.pi) print "Now you see it" btnToggle["text"] = "Hide Example" mylabel.visible = not mylabel.visible root = tk.Tk() print "TkVersion", tk.TkVersion print "TclVersion", tk.TclVersion print "Python version", sys.version_info mylabel = tk.Label(text="Example") mylabel.visible = True mylabel.place(x=20, y=50) mylabel.pi = mylabel.place_info() btnToggle = tk.Button(text="Hide Example", command=toggle) btnToggle.place(x=70, y=150) root.mainloop() That does what it's expected to do over here. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor