Tkinter -- StringVar() 工作不正常 [英] Tkinter -- StringVar() not working correctly

查看:32
本文介绍了Tkinter -- StringVar() 工作不正常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在尝试使用 TkInter 初始化 StringVar() 时,我得到了这个巨大的错误.于是报错如下:

在 [160] 中:从 Tkinter 导入 *在 [161] 中:p = StringVar()---------------------------------------------------------------------------AttributeError 回溯(最近一次调用最后一次)<ipython-input-161-3e21f17f6e4f>在 <module>()---->1 p = StringVar()C:\Python27\lib\lib-tk\Tkinter.pyc in __init__(self, master, value, name)285 则保留现有值.第286话-->287 Variable.__init__(self, master, value, name)288第289话C:\Python27\lib\lib-tk\Tkinter.pyc in __init__(self, master, value, name)第216话第217话-->第218话219 如果名称:第220话AttributeError: 'NoneType' 对象没有属性 'tk'在 [162] 中:

不完全确定这里出了什么问题.我正在使用 A

Windows 7 系统,

Python(x,y) 版本 2.7.5.2

Python 2.7.5

在 Tkinter.py 文件中:

__version__ = "$Revision: 81008 $"

TkVersion = 8.5

如果有人对正在发生的事情有任何线索,那么将不胜感激......

解决方案

您需要创建一个 Tkinter.Tk 在您创建 Tkinter.StringVar 之一之前:

root = Tk() # 你必须先这样做p = StringVar()

以下是演示:

<预><代码>>>>从 Tkinter 导入 *>>>>>>p = StringVar()回溯(最近一次调用最后一次):文件<stdin>",第 1 行,在 <module> 中文件C:\Python27\lib\lib-tk\Tkinter.py",第 287 行,在 __init__ 中Variable.__init__(self, master, value, name)文件C:\Python27\lib\lib-tk\Tkinter.py",第 218 行,在 __init__ 中self._tk = master.tkAttributeError: 'NoneType' 对象没有属性 'tk'>>>>>>根 = Tk()>>>p = StringVar()>>>

While trying to initialize a StringVar() using TkInter I am getting this huge error back. So the error is as follows:

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]:

Not entirely sure what is going wrong here. I am using A

Windows 7 system,

Python(x,y) version 2.7.5.2

Python 2.7.5

Within the Tkinter.py file:

__version__ = "$Revision: 81008 $" 

TkVersion = 8.5

If anyone has any clue as to what is going on, then it will be greatly appreciated ...

解决方案

You need to create an instance of Tkinter.Tk before you create one of Tkinter.StringVar:

root = Tk()  # You must do this first
p = StringVar()

Below is a demonstration:

>>> 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()
>>>

这篇关于Tkinter -- StringVar() 工作不正常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆