I'm a complete newbie to GUI.
I have a couple questions about tkinter.

1. Where is the list of changes
   in Python 3's tkinter?

2. What exactly is the role of the root object,
   traditionally created as ``root=tk.Tk()``?
   What is an example where one should create this
   before creating a Frame instance (which will
   otherwise implicitly create one as its master)?

2. Suppose I ``import tkinter as tk`` and
   then try ``s1=tk.StringVar()``.  This fails
   because no "master" is set. Why does a
   Variable need a master?

3. Now suppose I set ``root = tk.TK()`` and
   then try ``s1=tk.StringVar()``.  This
   works fine but now seems a bit magical:
   how has the value of the "master" been
   set?

4. Another bit of magic:
   Suppose I ``import tkinter as tk`` and
   then try ``f1=tk.Frame()``.  This works
   fine: apparently calling Frame also
   leads to implicit creation of a "master".
   Why is what is good for the gander (i.e.,
   implicit master creation for a Frame) not
   good for the goose (i.e., a Variable)?
   (Here I assume that there has been an
   answer to 2. above.)

5. Reading around a bit,
   it seems common to recommend setting
   the values of Variables rather than initializing
   them.  Why?  I cannot see the reason to avoid
   ``s1=tk.StringVar(value="this works fine")``
   and it looks like ``tk.StringVar(()`` is in any
   case initialized (to an empty string).

6. Why is str(s1) not its value?  More generally,
   why does a StringVar not behave more like a string?

Thanks for any insights,
Alan Isaac
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to