Ari*_*lth 6 python tkinter python-3.x
(Python版本:3.1.1)
我StringVar在tkinter 遇到了一个奇怪的问题.尝试在项目中持续更新Message小部件时,我在尝试创建变量时不断收到错误.我跳到一个交互式python shell进行调查,这就是我得到的:
>>> StringVar
<class 'tkinter.StringVar'>
>>> StringVar()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python31\lib\tkinter\__init__.py", line 243, in __init__
Variable.__init__(self, master, value, name)
File "C:\Python31\lib\tkinter\__init__.py", line 174, in __init__
self._tk = master.tk
AttributeError: 'NoneType' object has no attribute 'tk'
>>>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我在tkinter用法上看到的每个例子都显示初始化变量时没有发送给构造函数,所以如果我遗漏某些东西,我会感到茫然......
joa*_*uin 13
StringVar需要一个master:
>>> StringVar(Tk())
<Tkinter.StringVar instance at 0x0000000004435208>
>>>
Run Code Online (Sandbox Code Playgroud)
或者更常见的是:
>>> root = Tk()
>>> StringVar()
<Tkinter.StringVar instance at 0x0000000004435508>
Run Code Online (Sandbox Code Playgroud)
实例化Tk时,会创建一个新的解释器.在此之前没有任何作用
>>> from Tkinter import *
>>> StringVar()
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Python26\lib\lib-tk\Tkinter.py", line 251, in __init__
Variable.__init__(self, master, value, name)
File "C:\Python26\lib\lib-tk\Tkinter.py", line 182, in __init__
self._tk = master.tk
AttributeError: 'NoneType' object has no attribute 'tk'
>>> root = Tk()
>>> StringVar()
<Tkinter.StringVar instance at 0x00000000044C4408>
Run Code Online (Sandbox Code Playgroud)
您找到的示例的问题是,可能在文献中它们仅显示部分片段,这些片段应该在类或更长的程序中,以便不明确指示导入和其他代码.