Getting value of radiobutton trouble

VK "myname" at example.invalid
Sat May 28 17:42:58 EDT 2005


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



More information about the Python-list mailing list