tkinter questions: behavior of StringVar, etc

Mike Driscoll kyosohma at gmail.com
Sat Mar 28 18:19:40 EDT 2009


On Mar 28, 2:15 pm, Alan G Isaac <alan.is... at gmail.com> wrote:
> 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

Try Google and the Python website. There is tons of info on the Python
wiki:

http://wiki.python.org/moin/TkInter

There are also some books that walk you through Tkinter application
creation, for example,Lutz's "Programming Python".

- Mike



More information about the Python-list mailing list