main window in tkinter app

William Gill noreply at gcgroup.net
Tue Jul 19 14:08:48 EDT 2005


It also seems to operate the same with or without " app.mainloop()".  Is 
an explicit call to mainloop needed?

William Gill wrote:
> O.K. I tried from scratch, and the following snippet produces an 
> infinite loop saying:
> 
>   File "C:\Python24\lib\lib-tk\Tkinter.py", line 1647, in __getattr__
>       return getattr(self.tk, attr)
> 
> If I comment out the __init__ method, I get the titled window, and print 
> out self.var ('1')
> 
> 
> import  os
> from Tkinter import *
> 
> class MyApp(Tk):
>     var=1
>     def __init__(self):
>       pass
>     def getval(self):
>       return self.var
> 
> 
> app = MyApp()
> 
> app.title("An App")
> print app.getval()
> app.mainloop()
> 
> 
> Eric Brunel wrote:
> 
>> On Mon, 18 Jul 2005 16:57:51 GMT, William Gill <noreply at gcgroup.net> 
>> wrote:
>>
>>> A short while ago someone posted that(unlike the examples) you should
>>> use Tk as the base for your main window in tkinter apps, not Frame.   
>>> Thus :
>>>
>>>    class MyMain(Frame):
>>>            def __init__(self, master):
>>>                self.root = master
>>>                self.master=master
>>>                self.createWidgets()
>>>            def createWidgets():
>>>                 ...
>>>        root = Tk()
>>>        app = MyMain(root)
>>>        app.master.title("Object Editor")
>>>        root.mainloop()
>>>
>>> would become:
>>>
>>>     class MyMain(Tk):
>>>        ...
>>>        ...
>>>     app = MyMain()
>>>     app.title("My App")
>>>     app.mainloop()
>>>
>>> When I try converting to this approach I run into a problem with the
>>> __init__() method.  It appears to go into an infinite loop in
>>> tkinter.__getattr__().
>>
>>
>> [...]
>>
>> I never ran into this problem. Can you please post a short script 
>> showing this behavior? Without knowing what you exactly do in your 
>> __init__ and createWidgets method, it's quite hard to figure out what 
>> happens...



More information about the Python-list mailing list