Kent Johnson wrote: > VK wrote: > >>> On Thu, 26 May 2005 14:33:45 +0200, VK <"myname"@example.invalid> >>> declaimed the following in comp.lang.python: >>> >>> >>>> Hi, all! >>>> >>>> In my programm i have to insert a variable from class 2 to class 1 >>>> and I get error NameError: global name 'd' is not defined. How do I >>>> get access to d.entry.insert() method of class 1 > > >> >> from Tkinter import * >> >> class First: >> def __init__(self): >> self.root = Tk() # create window contents as children to >> root.. >> self.entryframe = Frame(self.root) >> self.entryframe.pack(fill=BOTH,expand=1) >> >> self.entry = Entry(self.entryframe) >> self.entry.pack(side=TOP,expand=1,fill=BOTH) >> self.entry.focus() >> self.entry.bind('<Return>',(lambda event: self.fetch())) # >> on enter key >> >> self.button = >> Button(self.entryframe,text="Call",command=self.getvar) >> self.button.pack(side=LEFT,expand=YES,fill=BOTH) >> >> self.root.mainloop() >> >> def fetch(self): >> print 'Input => "%s"' % self.entry.get() # get text form >> entry >> >> def getvar(self,event=0): >> c=Second(self,self.root) >> >> >> >> class Second: >> def __init__(self,parent,s="thing"): >> self.root = Tk() >> self.ent = Entry(self.root) >> self.ent.pack() >> self.btn = Button(self.root,text='Fetch',command=self.fetch) >> self.btn.pack(side=RIGHT) >> def fetch(self): >> text = self.ent.get() # get text form entry in this window >> d.entry.insert(0, text)# must insert in other window >> >> d = First() #First window > > > The problem is that First.__init__() never returns so the instance of > First is never bound to d. Take the line > self.root.mainloop() > out of First.__init__() and and the line > d.root.mainloop() > > at the end of the program and it will work as you expect. > > Kent
O, God! It works! Thousend of thanks! By the way, the second window appears not activ, is there an option to make it activ on start? Reg,VK -- http://mail.python.org/mailman/listinfo/python-list