我知道这种问题一直被问到,但要么我无法找到我需要的答案,要么当我这样做时我无法理解。
我希望能够做类似的事情:
spam = StringVar()
spam.set(aValue)
class MyScale(Scale):
def __init__(self,var,*args,**kwargs):
Scale.__init__(self,*args,**kwargs)
self.bind("<ButtonRelease-1>",self.getValue)
self.set(var.get())
def getValue(self,event):
## spam gets changed to the new value set
## by the user manipulating the scale
var.set(self.get)
eggs = MyScale(spam,*args,**kwargs)
eggs.pack()
当然,我回来了“NameError:未定义全局名称'var'。”
如何解决无法将参数传递给 getValue 的问题?我被警告不要使用全局变量,但这是我唯一的选择吗?它是否为我要更改的每个变量设置了一个单独的比例类?我觉得我错过了一些就在我鼻子底下的东西......
编辑:这是你的意思吗?
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "C:\...\interface.py", line 70, in getValue
var.set(self.get)
NameError: global name 'var' is not defined
抱歉,我才编程一个月,有些行话还是没听懂。