我想在调用按钮delete时调用方法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()
最佳答案
mtext
和name
变量仅存在于Hello
和Callback
函数的范围内。
这意味着即使您有一个mtext
变量,它也在Hello
函数内部,并且您不能从函数本身外部访问它。
有两种方法可以将其获取到全局范围-一种是使用在代码(global mtext
)中的某个地方将这些变量定义为全局变量,或者只调用外部范围中的函数,并将返回值赋给将与delImg
函数一起使用的新变量。
关于python - 在Tkinter中存储来自文本字段的输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37894183/