Thursday, 8 August 2013

Accessing inherited method from Toplevel

Accessing inherited method from Toplevel

Toplevel has a method distroy that I'm having difficulty accessing from
inside a class.
This code works:
top = Toplevel()
Message(top, text="bla bla bla...").pack()
Button(top, text="Dismiss", command=top.distroy).pack()
top.mainloop()
This does not:
from Tkinter import Toplevel,Message,Button,mainloop
class Demo(Toplevel):
def __init__(self,title,message,master=None):
Toplevel.__init__(self,master)
self.title = title
msg = Message(self,text=message)
msg.pack()
button = Button(self, text="Dismiss", command=self.distroy)
button.pack()
if __name__ == '__main__':
t1 = Demo("First Toplevel", "some random message text... goes on and
on and on...")
t2 = Demo("No, I don't know!", "I have no idea where the root window
came from...")
mainloop()
Error message:
Traceback (most recent call last):
File "C:\Users\tyler.weaver\Projects\python scripts\two_toplevel.pyw",
line 16, in <module>
t1 = Demo("First Toplevel", "some random message text... goes on and
on and on...")
File "C:\Users\tyler.weaver\Projects\python scripts\two_toplevel.pyw",
line 12, in __init__
button = Button(self, text="Dismiss", command=self.distroy)
AttributeError: Demo instance has no attribute 'distroy'

No comments:

Post a Comment