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