By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
432,441 Members | 996 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 432,441 IT Pros & Developers. It's quick & easy.

Getting value of radiobutton trouble

P: n/a
VK
Hi!
What I'm missing in following code? Cannot get the values of
radiobuttons. Starting only one class (GetVariant), it works. When I put
two classes together, it doesn't.
Regards, VK

from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()
Jul 19 '05 #1
Share this Question
Share on Google+
8 Replies


P: n/a
Hi,

I think your second call to Tk() does it: this works although the look is
different:
from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


VK wrote:
Hi!
What I'm missing in following code? Cannot get the values of
radiobuttons. Starting only one class (GetVariant), it works. When I put
two classes together, it doesn't.
Regards, VK

from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


Jul 19 '05 #2

P: n/a
Sorry,

I still had your code in my clipboard :-) here goes:

from Tkinter import *
class GetVariant(Frame):
def __init__(self,p):
self.root = p
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)
self.v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 1",
variable=self.v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 2",
variable=self.v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text="Variant 3",
variable=self.v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
print dir(self.v)
self.variant = self.v.get()
print 'Input => "%s"' % self.variant

class OneButton(Frame):
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
print 'HRE'
a=GetVariant(self.root)

d = OneButton()
d.root.mainloop()


Philippe C. Martin wrote:
Hi,

I think your second call to Tk() does it: this works although the look is
different:
from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


VK wrote:
Hi!
What I'm missing in following code? Cannot get the values of
radiobuttons. Starting only one class (GetVariant), it works. When I put
two classes together, it doesn't.
Regards, VK

from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


Jul 19 '05 #3

P: n/a
VK
Philippe C. Martin wrote:
Hi,

I think your second call to Tk() does it: this works although the look is
different:
from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


VK wrote:

Hi!
What I'm missing in following code? Cannot get the values of
radiobuttons. Starting only one class (GetVariant), it works. When I put
two classes together, it doesn't.
Regards, VK

from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()



Sorry, but I don't get it. There is no deference between my code and
your answer. I'm beginner...
Jul 19 '05 #4

P: n/a
PS: Since your starting with TKinter, and although I do not know what your
goal is, I suggest you take a look at wxPython: it is _wonderfull_ ! (no
offence to TCL/TK)

Regards,

Philippe


VK wrote:
Philippe C. Martin wrote:
Hi,

I think your second call to Tk() does it: this works although the look is
different:
from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


VK wrote:

Hi!
What I'm missing in following code? Cannot get the values of
radiobuttons. Starting only one class (GetVariant), it works. When I put
two classes together, it doesn't.
Regards, VK

from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()



Sorry, but I don't get it. There is no deference between my code and
your answer. I'm beginner...


Jul 19 '05 #5

P: n/a
VK
Philippe C. Martin wrote:
Sorry,

I still had your code in my clipboard :-) here goes:
So, your code works, but I need, that first window calls another
separate window. In your programm they stick together.
Reg, VK

from Tkinter import *
class GetVariant(Frame):
def __init__(self,p):
self.root = p
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)
self.v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 1",
variable=self.v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 2",
variable=self.v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text="Variant 3",
variable=self.v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
print dir(self.v)
self.variant = self.v.get()
print 'Input => "%s"' % self.variant

class OneButton(Frame):
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
print 'HRE'
a=GetVariant(self.root)

d = OneButton()
d.root.mainloop()


Philippe C. Martin wrote:

Hi,

I think your second call to Tk() does it: this works although the look is
different:
from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


VK wrote:

Hi!
What I'm missing in following code? Cannot get the values of
radiobuttons. Starting only one class (GetVariant), it works. When I put
two classes together, it doesn't.
Regards, VK

from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


Jul 19 '05 #6

P: n/a
Then I guess you need a TopLevel widget instead:
(I still suggest you look at wxPython)
from Tkinter import *
class GetVariant:
def __init__(self,p):
self.root = p

self.firstframe = Frame(self.root,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)
self.v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 1",
variable=self.v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 2",
variable=self.v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text="Variant 3",
variable=self.v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.root,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = self.v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
self.mainframe = Toplevel(bg="yellow")
a=GetVariant(self.mainframe)

d = OneButton()
d.root.mainloop()

VK wrote:
Philippe C. Martin wrote:
Sorry,

I still had your code in my clipboard :-) here goes:


So, your code works, but I need, that first window calls another
separate window. In your programm they stick together.
Reg, VK

from Tkinter import *
class GetVariant(Frame):
def __init__(self,p):
self.root = p
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)
self.v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 1",
variable=self.v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 2",
variable=self.v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text="Variant 3",
variable=self.v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
print dir(self.v)
self.variant = self.v.get()
print 'Input => "%s"' % self.variant

class OneButton(Frame):
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
print 'HRE'
a=GetVariant(self.root)

d = OneButton()
d.root.mainloop()


Philippe C. Martin wrote:

Hi,

I think your second call to Tk() does it: this works although the look is
different:
from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


VK wrote:
Hi!
What I'm missing in following code? Cannot get the values of
radiobuttons. Starting only one class (GetVariant), it works. When I put
two classes together, it doesn't.
Regards, VK

from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click
me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()



Jul 19 '05 #7

P: n/a
VK
Philippe C. Martin wrote:
Then I guess you need a TopLevel widget instead:
(I still suggest you look at wxPython)
from Tkinter import *
class GetVariant:
def __init__(self,p):
self.root = p

self.firstframe = Frame(self.root,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)
self.v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 1",
variable=self.v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 2",
variable=self.v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text="Variant 3",
variable=self.v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.root,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = self.v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
self.mainframe = Toplevel(bg="yellow")
a=GetVariant(self.mainframe)

d = OneButton()
d.root.mainloop()

VK wrote:

Philippe C. Martin wrote:
Sorry,

I still had your code in my clipboard :-) here goes:


So, your code works, but I need, that first window calls another
separate window. In your programm they stick together.
Reg, VK



from Tkinter import *
class GetVariant(Frame):
def __init__(self,p):
self.root = p
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)
self.v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 1",
variable=self.v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text="Variant 2",
variable=self.v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text="Variant 3",
variable=self.v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
print dir(self.v)
self.variant = self.v.get()
print 'Input => "%s"' % self.variant

class OneButton(Frame):
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
print 'HRE'
a=GetVariant(self.root)

d = OneButton()
d.root.mainloop()


Philippe C. Martin wrote:

Hi,

I think your second call to Tk() does it: this works although the look is
different:

from Tkinter import *

class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


VK wrote:

>Hi!
>What I'm missing in following code? Cannot get the values of
>radiobuttons. Starting only one class (GetVariant), it works. When I put
>two classes together, it doesn't.
>Regards, VK
>

>from Tkinter import *

>class GetVariant:
> def __init__(self):
> self.root = Tk()
> self.mainframe = Frame(self.root,bg="yellow")
> self.mainframe.pack(fill=BOTH,expand=1)
>
> self.firstframe = Frame(self.mainframe,bg="red")
> self.firstframe.pack(side=BOTTOM,expand=1)
>
> global v
> v = StringVar()
> self.radiobutton = Radiobutton(self.firstframe,text= "Variant
>1", variable=v, value="Variant 1")
> self.radiobutton.pack(side=TOP,anchor=W)
> self.radiobutton.select()
> self.radiobutton = Radiobutton(self.firstframe,text= "Variant
>2", variable=v, value="Variant 2")
> self.radiobutton.pack(side=TOP,anchor=W)
> self.radiobutton = Radiobutton(self.firstframe,text= "Variant
>3", variable=v, value="Variant 3")
> self.radiobutton.pack(side=TOP,anchor=W)
>
>
>
> self.secondframe = Frame(self.mainframe,bg="blue")
> self.secondframe.pack()
> self.var = Button(self.secondframe,text="What
>Variant",command=self.call)
> self.var.pack(expand=1,side=BOTTOM)
>
>
>
> def call(self):
> self.variant = v.get()
> print 'Input => "%s"' % self.variant
>
>class OneButton:
> def __init__(self):
> self.root = Tk()
> Button(self.root,text="click
> me",command=self.getvar).pack()
> def getvar(self):
> a=GetVariant()
>
>d = OneButton()
>d.root.mainloop()

Unfortunately, I can use only TkInter and Pmw
Jul 19 '05 #8

P: n/a
VK
Philippe C. Martin wrote:
PS: Since your starting with TKinter, and although I do not know what your
goal is, I suggest you take a look at wxPython: it is _wonderfull_ ! (no
offence to TCL/TK)

Regards,

Philippe


VK wrote:

Philippe C. Martin wrote:
Hi,

I think your second call to Tk() does it: this works although the look is
different:
from Tkinter import *
class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()


VK wrote:

Hi!
What I'm missing in following code? Cannot get the values of
radiobuttons. Starting only one class (GetVariant), it works. When I put
two classes together, it doesn't.
Regards, VK
from Tkinter import *

class GetVariant:
def __init__(self):
self.root = Tk()
self.mainframe = Frame(self.root,bg="yellow")
self.mainframe.pack(fill=BOTH,expand=1)

self.firstframe = Frame(self.mainframe,bg="red")
self.firstframe.pack(side=BOTTOM,expand=1)

global v
v = StringVar()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
1", variable=v, value="Variant 1")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton.select()
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
2", variable=v, value="Variant 2")
self.radiobutton.pack(side=TOP,anchor=W)
self.radiobutton = Radiobutton(self.firstframe,text= "Variant
3", variable=v, value="Variant 3")
self.radiobutton.pack(side=TOP,anchor=W)

self.secondframe = Frame(self.mainframe,bg="blue")
self.secondframe.pack()
self.var = Button(self.secondframe,text="What
Variant",command=self.call)
self.var.pack(expand=1,side=BOTTOM)

def call(self):
self.variant = v.get()
print 'Input => "%s"' % self.variant

class OneButton:
def __init__(self):
self.root = Tk()
Button(self.root,text="click me",command=self.getvar).pack()
def getvar(self):
a=GetVariant()

d = OneButton()
d.root.mainloop()

Sorry, but I don't get it. There is no deference between my code and
your answer. I'm beginner...



Thanks for your help! Toplevel made the job.
Reg. VK
Jul 19 '05 #9

This discussion thread is closed

Replies have been disabled for this discussion.