我想在调用按钮删除时调用方法delImg
。我使用了以下代码段。但方法参数突出显示为错误。我用过Tkinter。怎么纠正它?
import Tkinter
import sys
from Tkinter import *
from tkFileDialog import askopenfilename
root= Tk()
enText =StringVar()
#root.geometry("400*400+500+300")
root.title("Welcome")
def Hello():
mtext = enText.get()
mlabel2 = Label(root,text=mtext).pack()
print(mtext)
return mtext
def callback():
name= askopenfilename()
print name
return name
def delImg(m1,n1):
if(m1!=n1):
print("Error")
text = Entry(root,textvariable =enText).pack()
mbtn = Button(root,text="Enter",command=callback,fg='red').pack()
mbtn = Button(root,text="Ok",command=Hello,fg='red').pack()
mbtn = Button(root,text="Delete", command= lambda:
delImg(mtext,name),fg='red').pack()
#print(mtext)
root.mainloop()
答案 0 :(得分:3)
mtext
和 name
变量分别仅存在于Hello
和Callback
函数的范围内。
这意味着即使你有一个mtext
变量,它也在Hello
函数中,你无法从函数本身外部访问它。
有两种方法可以使它达到全局范围 - 一种是在代码中使用将这些变量定义为全局(global mtext
),或者只是在外部作用域中调用函数,并将返回值赋值给a您将使用delImg
函数的新变量。