the second of nested buttons using textvariable remains void!

James Stroud jstroud at mbi.ucla.edu
Wed Mar 21 20:18:57 EDT 2007


Samkos wrote:
> Hi there,
> 
> I am fighting with a problem I intended to  believe trivial that
> I could not solve yet!
> 
> I am trying to have a button with a variable text, that
> pops up another button with a variable text when pressed.
> 
> I did that with the following program  in Python, but the
> second button remains always void!!! is it related to
> the textvariable parameters?
> 
> If any of you had a clue, please  don't hesitate!
> 
> in advance, many thanks
> 
> Samuel
> 
> #----------------------- program 2 buttons.py
> --------------------------
> 
> from Tkinter import *
> 
> 
> def go(event):
>     root = Tk()
> 
>     s1=StringVar()
>     s1.set("s1")
>     label1 = Label(root, textvariable=s1)
>     label1.pack(side=LEFT)
> 
>     root.mainloop()
> 
> 
> 
> root = Tk()
> 
> s0=StringVar()
> s0.set("s0")
> label0 = Label(root, textvariable=s0)
> label0.pack(side=LEFT)
> 
> 
> root.bind("<Return>",go)
> 
> root.mainloop()
> 


You have instantiated Tk twice which causes these kind of problems. If 
you want a window in go(), use Toplevel instead of Tk (and "mainloop" is 
not needed in go()). I.e.:


def go(event):
     not_root = Toplevel()

     s1=StringVar()
     s1.set("s1")
     label1 = Label(not_root, textvariable=s1)
     label1.pack(side=LEFT)

James



More information about the Python-list mailing list