the second of nested buttons using textvariable remains void!

S

Samkos

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()
 
J

James Stroud

Samkos said:
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
 
J

jim-on-linux

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()

try this;

def go():
root = Tk()
root.config(bg= 'yellow')
s1=StringVar()
blabel1 = Button(root, textvariable=s1,
width = 10, height = 2,
command = next)
blabel1.pack()
root.bind("<Return>", vbind)
s1.set('click_s1')

def vbind(event):
next()

def next():
second = Toplevel()
s0=StringVar()
s0.set("click_s0")
blabel0 = Button(second, textvariable=s0,
command = second.destroy,
width = 10, height = 2)
blabel0.pack()

if __name__ == '__main__' :
go()
mainloop()


jim-on-linux
http://inqvista.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,983
Messages
2,570,187
Members
46,747
Latest member
jojoBizaroo

Latest Threads

Top