Access from one class to methode of other class

VK "myname" at example.invalid
Thu May 26 12:51:20 EDT 2005


> 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
>>
>>class 1:
> 
> 	<shudder> Does Python even allow numeric class names?

:-D don't know

> 
> 	REAL code, stripped to the minimum that duplicates your problem,
> is always better than pseudo-code...

I thought that is it...

> 
> 
>>    self.entry = Entry(self.entryframe)
>>    self.entry.pack()
>>
>>    self.button = Button(command = self.callclass2window)
>>
>>    def callclass2window
>>	c = 2()
>>
>>
>>class 2:
>>    def ins(self)
> 
> 	NO : ???
> 
> 
>>	d.entry.insert(variable)
>>
>>
>>d = 1()
> 
> 
> 	What, might I ask, does .insert() /do/ for an Entry() object?

That insert text into entry object.

> 
> 	As far as I can tell, "class 1" is creating some GUI button.
> Pressing that button invokes your callclass2window(), which creates a
> new "class 2" instance, and then throws it away.

Yes, exactly

> 
> 	Give us code that we can /run/ and we might be able to give you
> an answer...

I try:

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



More information about the Python-list mailing list