您好我想在另一种AGM方法中使用checkbutton_value1方法。
def AGM():
def A1():
print "A1"
def A2():
print "A2"
def checkbutton_value1():
x=var1.get()
我尝试将checkbutton_value1用于checkbutton命令,但它不起作用。
master = Tk() # Open up GUI connection
master.title('Program Application')
var1=IntVar()
checkbox_1 = Checkbutton(master, text='Interpolate Graph', variable=var1,command=checkbutton_value1)
checkbox_1.pack()
master.mainloop() # Continue loop till user close tab
错误消息
NameError: name 'checkbutton_value1' is not defined
答案 0 :(得分:0)
这可能是因为你在AGM的命名空间中定义了checkbutton_value1
。
您需要做的是:
def checkbutton_value1():
x = var1.get()
master = Tk() # Open up GUI connection
master.title('Program Application')
var1 = IntVar()
checkbox_1 = Checkbutton(master, text='Interpolate Graph',
variable=var1, command=checkbutton_value1)
checkbox_1.pack()
master.mainloop() # Continue loop till user close tab
现在,这将有效。但是,在糟糕的情况下,最好使用lambda:
checkbox_1 = Checkbutton(master, text='Interpolate Graph',
variable=var1, command=lambda: var1.get())
答案 1 :(得分:0)
你可以发一个更大的片段吗?这可能是失败的,因为checkbutton_value1是在引用它的行没有访问权限的范围内定义的。
例如,这不会产生该错误:
class test:
def foo():
pass
print(test.foo())