我正在创建一个 GUI,变量正在发生一些事情。
它从计算值 theta 开始,当我单击一个按钮时,它被传递到一个 Entry 字段(这是写在一个函数中的:)thetaVar.set(CalcTheta(grensVar.get(), data[:,1], data[:,2]))
。
thetaVar = IntVar()
def callbackTheta(name, index, mode):
thetaValue = nGui.globalgetvar(name)
nGui.globalsetvar(name, thetaValue)
wtheta = thetaVar.trace_variable('w', callbackTheta)
rtheta = thetaVar.trace_variable('r', callbackTheta)
entryTheta = Entry(textvariable=thetaVar).place(x=90, y=202)
这有效(并且我在 Entry 字段中看到了该值),但是当我稍后尝试获取该值时,它不起作用。我相信我尝试了一切:
thetaVar.get() # with print, returns the integer 0, this is the initial value
# that is displayed, even though at that moment it shows 0.4341.
thetaVar # with print, returns 'PY_VAR3'
thetaValue # with print, global value not defined
entryTheta.get() # AttributeError: 'NoneType' object has no attribute 'get'
rtheta # print returns: 37430496callbackTheta
我不明白这个值存储在哪里以及如何在另一个函数中使用条目的值。即使我在实际之后立即尝试其中任何一个.set
,我似乎也无法在之后立即打印条目的这个特定值。
在 Windows 8 上使用 tkinter 和 Python 3.3。