存储来自Tkinter中文本字段的输入

时间:2016-06-18 06:55:15

标签: python tkinter

我想在调用按钮删除时调用方法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()

1 个答案:

答案 0 :(得分:3)

mtext name 变量分别仅存在于HelloCallback函数的范围内。

这意味着即使你有一个mtext变量,它也在Hello函数中,你无法从函数本身外部访问它。

有两种方法可以使它达到全局范围 - 一种是在代码中使用将这些变量定义为全局(global mtext),或者只是在外部作用域中调用函数,并将返回值赋值给a您将使用delImg函数的新变量。