Tkinter -- StringVar() 不正常
在尝试使用 TkInter 初始化一个 StringVar()
时,我遇到了一个很大的错误。这个错误的内容如下:
In [160]: from Tkinter import *
In [161]: p = StringVar()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-161-3e21f17f6e4f> in <module>()
----> 1 p = StringVar()
C:\Python27\lib\lib-tk\Tkinter.pyc in __init__(self, master, value, name)
285 then the existing value is retained.
286 """
--> 287 Variable.__init__(self, master, value, name)
288
289 def get(self):
C:\Python27\lib\lib-tk\Tkinter.pyc in __init__(self, master, value, name)
216 master = _default_root
217 self._master = master
--> 218 self._tk = master.tk
219 if name:
220 self._name = name
AttributeError: 'NoneType' object has no attribute 'tk'
In [162]:
我不太确定到底出了什么问题。我使用的是
Windows 7 系统,
Python(x,y) 版本 2.7.5.2
Python 2.7.5
在 Tkinter.py 文件中:
__version__ = "$Revision: 81008 $"
TkVersion = 8.5
如果有人知道发生了什么事,我将非常感激...
1 个回答
4
在你创建 Tkinter.Tk
的实例之前,必须先创建一个 Tkinter.StringVar
的实例:
root = Tk() # You must do this first
p = StringVar()
下面是一个示例:
>>> from Tkinter import *
>>>
>>> p = StringVar()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\lib-tk\Tkinter.py", line 287, in __init__
Variable.__init__(self, master, value, name)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 218, in __init__
self._tk = master.tk
AttributeError: 'NoneType' object has no attribute 'tk'
>>>
>>> root = Tk()
>>> p = StringVar()
>>>