On Tue, Feb 28, 2012 at 1:22 PM, Lynn Oliver <rayco...@gmail.com> wrote: > I've discovered that 'bd=4' and 'font=...' both work if I import: > from tkFileDialog import askopenfilename, asksaveasfilename, askdirectory > from Tkinter import * > import tkFont > from ttk import * > > And they both fail if I import only: > from Tkinter import * > import tkFont > from ttk import * > > Can anyone explain what is going on here?
Both Tkinter and ttk define objects with the same name, such as Button and Label. These two widgets don't share the same set of options. When you do "import *", whichever one you import second "wins". Thus, in one file you might be getting a tk button with one set of options, and in another you get a ttk button with a different set, even though in both files you use "Button". IMHO this is a perfect example why you should _never_ "import *". Instead, I wholeheartedly recommend always working like this: import Tkinter as tk import ttk ... tk.Button(...) ttk.Button(...) With that, it becomes completely obvious which sort of button or label you are creating. Even if you don't mix tk and ttk widgets I think you should import this way. It makes the code more self-documenting at the expense of a tiny bit more typing. _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss