获取ini上的tkinter StringVar()错误

2024-04-27 04:05:06 发布

您现在位置:Python中文网/ 问答频道 /正文

(Python版本:3.1.1)

我对tkinter中的StringVar有一个奇怪的问题。尝试在项目中持续更新消息小部件时,我在尝试创建变量时不断收到错误。我跳到一个互动的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'
>>>

有什么想法吗?我在tkinter用法中看到的每个例子都显示了初始化变量时没有向构造函数发送任何内容,因此如果我丢失了某些内容,我将不知所措。。。


Tags: 项目inpyself版本master内容init
1条回答
网友
1楼 · 发布于 2024-04-27 04:05:06

StringVar需要一个主:

>>> StringVar(Tk())
<Tkinter.StringVar instance at 0x0000000004435208>
>>> 

或者更常见的是:

>>> root = Tk()
>>> StringVar()
<Tkinter.StringVar instance at 0x0000000004435508>

当您实例化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>

您发现的示例的问题是,可能在文献中,它们只显示了部分代码片段,这些代码片段应该位于类内或较长的程序中,这样导入和其他代码就不会被显式指示。

相关问题 更多 >