On Thu, 18 May 2006 11:52:54 -0400, Michael Yanowitz <[EMAIL PROTECTED]> wrote: > Thanks. That helped alot.
No problem. > However it leaves a couple very minor problems which I think I can live > with. > 1) It brings up an empty additional 'main window'. > I have tried using the Tkinter.NoDefaultRoot() option, but run into > other problems with other things not defined. > NameError: global name '_default_root' is not defined > Exception exceptions.AttributeError: "IntVar instance has no attribute > '_tk'" in > <bound method IntVar.__del__ of <Tkinter.IntVar instance at 0x009C7990>> > ignored > > 2) By deriving the 'dialog' from Tk, existing calls to self.pack() no > longer are valid, but they don't appear to be necessary. > > My only 'Tkinter tutorial' is what is included in Orielly's > "Programming > Python". Still looking for a good tutorial. I am not clear what the > difference > between Tk() and Toplevel() are. They seem totally interchangeable. No, they're not! Never - and I mean *never* - create two instances of Tk in the same application! The Tk instance does not only represent the main window for the application, but also creates the underlying tcl interpreter. Creating two instances of Tk will then create two interpreters and you'll never know which one executes your commands, producing weird TclError's everywhere. If you have a window which can be considered as the main window for your application - there is only one of it, it is always there and closing it means quitting the application -, then make it a sub-class of Tk. If you do not have such a window, use the following trick at the beginning of your application: root = Tkinter.Tk() root.withdraw() This basically creates a main window and immediately hides it. All your other windows must be sub-classes of Toplevel. Calling the quit method of these windows should still quit the application, and calling the destroy method should only close the window. As for tutorials, there are many; just see there: http://tkinter.unpy.net/wiki/Tkinter Apart from the one already given by Rony (which is more a reference than a tutorial), my favorite ones are: - Stephen Ferg's "Thinking in Tkinter" - http://www.ferg.org/thinking_in_tkinter/index.html - The one at http://doctormickey.com/python/index.html - Gerard Swinnen's "Apprendre a programmer avec Python" (in French) - http://www.cifen.ulg.ac.be/inforef/swi/python.htm At least, these ones avoid the confusion Frame/window usually found in many others: the first two don't use inheritance at all; only the last (the one in French) implements windows as sub-classes of Tk or Toplevel. Unfortunately, I don't know any english translation of it. A last advice: if you want to do serious Tkinter, it really helps to know how the underlying tcl/tk layer works. So maybe you should learn at least the basics of tcl/tk. And if you do that, you will be able to use tcl/tk resources, such as: http://www.tcl.tk/man/ which is the only documentation I ever need now... HTH -- python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])" -- http://mail.python.org/mailman/listinfo/python-list