与'有关的问题;StringVar';在Python程序中
我正在尝试使用Tkinter用Python编写一个非常简单的UI。我在与'有关的问题;StringVar';在Python程序中,python,string,user-interface,widget,tkinter,Python,String,User Interface,Widget,Tkinter,我正在尝试使用Tkinter用Python编写一个非常简单的UI。我在StringVar类中遇到了一个小问题。问题是,当我运行python脚本时,在初始化StringVar变量的行上出现了一个错误。我已经针对这个问题编写了一个示例程序,我想开始工作: from Tkinter import * var = StringVar() var.set('test'); 在python中运行时,我看到以下错误: $ python test.py Traceback (most recent call
StringVar
类中遇到了一个小问题。问题是,当我运行python脚本时,在初始化StringVar
变量的行上出现了一个错误。我已经针对这个问题编写了一个示例程序,我想开始工作:
from Tkinter import *
var = StringVar()
var.set('test');
在python中运行时,我看到以下错误:
$ python test.py
Traceback (most recent call last):
File "test.py", line 3, in <module>
var = StringVar()
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 254, in __init__
Variable.__init__(self, master, value, name)
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 185, in __init__
self._tk = master.tk
AttributeError: 'NoneType' object has no attribute 'tk'
Exception AttributeError: "StringVar instance has no attribute '_tk'" in <bound method StringVar.__del__ of <Tkinter.StringVar instance at 0xb73cc80c>> ignored
$python test.py
回溯(最近一次呼叫最后一次):
文件“test.py”,第3行,在
var=StringVar()
文件“/usr/lib/python2.6/lib-tk/Tkinter.py”,第254行,在__
变量。\uuuu init\uuuuu(self、master、value、name)
文件“/usr/lib/python2.6/lib-tk/Tkinter.py”,第185行,在__
self.\u tk=master.tk
AttributeError:“非类型”对象没有属性“tk”
异常AttributeError:“StringVar实例在已忽略的
我觉得这是Python安装的一个问题,但可能是我做错了什么?我在Ubuntu Linux上使用的是python 2.6.5版,如果这有什么不同的话。我自己从来没有对Tkinter做过任何事情,但这里看起来这个StringVar类继承自一个基本变量类,正如您在调用
变量的回溯中所看到的那样。\uu init\uuu()
。异常是由语句“self.tk=master.tk”引发的。下面的错误消息表明这个“master”参数是非类型的,因此没有这样的tk属性。在这里查看StringVar的Tkinter文档:
主参数默认设置为“无”。看起来master应该作为一个可能包含这个StringVar的小部件提供(即,让StringVar不与小部件关联是否有意义?)。我不得不说,您最肯定需要将StringVar对象与小部件相关联,使其具有“tk”属性。我认为您可能需要在调用StringVar之前显式调用tk() 只要这样做:
from Tkinter import *
Tk() # Add this
var = StringVar()
var.set('test');
为什么在创建
StringVar
对象之前必须显式调用Tk()
?