On May 19, 2:11 pm, Peter Otten <[EMAIL PROTECTED]> wrote: > > There's some magic going on behind the scene which means that you have to > create a Tkinter.Tk instance before you can start churning out StringVars: > > >>> import Tkinter as tk > >>> v = tk.StringVar() > > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 257, in __init__ > Variable.__init__(self, master, value, name) > File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 188, in __init__ > self._tk = master.tk > AttributeError: 'NoneType' object has no attribute 'tk'>>> root = tk.Tk() > >>> v = tk.StringVar() > >>> v.set(42) > >>> v.get() > > '42' > > Peter
I had the Tkinter import as from Tkinter import * but I changed it to import Tkinter as tk and modified the creation of the root object to root=tk.Tk() I then had to change every instance of Menu, Label, Button, and all Tkinter elements to be prefaced by tk. (so Button became tk.Button). That kind of makes sense to me. However even after specifying StringVar is a tk type def initOPValues(self, OPname, dname): OPDefaults = { 'Vval' : 0, 'Ival' : 0, 'Otemp' : 0 } dname = dict((d,tk.StringVar()) for d in OPDefaults) for d in OPDefaults: dname[d].set(OPDefaults[d]) I still get a very similar error message C:\Code\gui>tkinter.py Traceback (most recent call last): File "C:\Code\gui\tkinter.py", line 169, in <module> ps.initOPValues(c, OPValues[c]) File "C:\Code\gui\tkinter.py", line 54, in initOPValues dname = dict((d,tk.StringVar()) for d in OPDefaults) File "C:\Code\gui\tkinter.py", line 54, in <genexpr> dname = dict((d,tk.StringVar()) for d in OPDefaults) File "C:\Python25\lib\lib-tk\Tkinter.py", line 254, in __init__ Variable.__init__(self, master, value, name) File "C:\Python25\lib\lib-tk\Tkinter.py", line 185, in __init__ self._tk = master.tk AttributeError: 'NoneType' object has no attribute 'tk' Exception exceptions.AttributeError: "StringVar instance has no attribute '_tk'" in <bound method StringVar.__del__ of <Tkinter.StringVar instance at 0x00B7E418>> ignored Thanks! Kevin -- http://mail.python.org/mailman/listinfo/python-list