我想在调用按钮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()

最佳答案

mtextname变量仅存在于HelloCallback函数的范围内。
这意味着即使您有一个mtext变量,它也在Hello函数内部,并且您不能从函数本身外部访问它。
有两种方法可以将其获取到全局范围-一种是使用在代码(global mtext)中的某个地方将这些变量定义为全局变量,或者只调用外部范围中的函数,并将返回值赋给将与delImg函数一起使用的新变量。

关于python - 在Tkinter中存储来自文本字段的输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37894183/

10-11 03:56