don't understand namespaces...
Simon Forman
sajmikins at gmail.com
Thu Apr 30 23:54:16 EDT 2009
On Apr 30, 10:11 am, Lawrence Hanser <lhan... at gmail.com> wrote:
> Dear Pythoners,
>
> I think I do not yet have a good understanding of namespaces. Here is
> what I have in broad outline form:
>
> ------------------------------------
> import Tkinter
>
> Class App(Frame)
> define two frames, buttons in one and Listbox in the other
>
> Class App2(Frame)
> define one frame with a Text widget in it
>
> root = Tk()
> app = App(root)
> win2 = Toplevel(root)
> app2 = App2(win2)
> root.mainloop()
> ------------------------------------
>
> My understanding of the above goes like this:
> 1) create a root window
> 2) instantiate a class that defines a Frame in the root window
> 3) create another Toplevel window
> 4) instantiate another class that defines a frame in the Toplevel window (win2)
>
> What I cannot figure out is how to reference a widget in app2 from app...
>
> I hope this is sort of clear.
>
> Any assistance appreciated.
>
> Thanks,
>
> Larry
There are lots of different ways to do this in python. If you were to
set an instance variable to the widget you're interested in in the
__init__() method of the App2 class, i.e. self.some_name = Text(...),
then you can pass it to a method of App as a parameter.
class App(Frame):
...
def doSomething(self, widget):
do something with the widget...
...
app.doSomething(app2.some_name)
In your case, I think this is what you might want to do:
class App(Frame):
def setWidget(self, widget):
self.widget = widget
root = Tk()
app = App(root)
win2 = Toplevel(root)
app2 = App2(win2)
app.setWidget(app2.some_name)
root.mainloop()
Then code in App can use self.widget to access the widget.
HTH,
~Simon
More information about the Python-list
mailing list