在这种情况下,如何使用同一类中的方法?我正在尝试制作一个tkinter比例,每次更改时都会更新。我如何收集这个值?
这是代码的片段
例如,
class Humidity(Page):
humidityValue = 0
def __init__(self, *args, **kwargs):
Page.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", expand =True, fill = "both")
humidityScale = tk.Scale(container, from_=0, to=60, tickinterval=10, width= 30,
orient="horizontal", borderwidth = 0, highlightthickness= 0, length=800, command=set_humidity)
humidityLabel = tk.Label(container, text="Humidity(%)" , fg='White')
humidityScale.pack(side="top")
humidityScale.set(25) #Sets humidity values to 25%
humidityLabel.pack(side="bottom")
humidityValue = humidityScale.get()
def get_humidity(self):
print self.humidityValue
def set_humidity(val):
humidityValue = val
将返回错误说明:未定义全局名称'set_humidity'
答案 0 :(得分:0)
当您在self.
声明属性时忘记在humidityValue
后面添加__init__
:
humidityValue = humidityScale.get()
应为self.humidityValue = humidityScale.get()
。
这是必需的,以便在类中使用类AND函数创建的对象(如您所见)可以自引用属性。
您可能需要对__init__
中的其他变量进行相同的更改(例如humidityScale
,humidityLabel
)。
关于您的函数set_humidity
无效的原因 - 您忘记添加self
作为函数的第一个参数,就像您使用get_humidity
{ p>