Getting value of radiobutton trouble
Philippe C. Martin
philippe at philippecmartin.com
Sat May 28 17:10:02 EDT 2005
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()
More information about the Python-list
mailing list