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() >> >> -- http://mail.python.org/mailman/listinfo/python-list