2016-06-18 4 views
3

ボタン削除が呼び出されたときにdelImgメソッドを呼び出すとします。私はそれに次のコードセグメントを使用しました。しかし、メソッドのパラメータは間違っていると強調表示されます。私はTkinterを使いました。それを修正する方法は?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

あなたの行の中に '('がありません:delImg((mtext、name)、fg = 'red')。pack() '。ここ、または元のコードのそれのようなものですか? – coralvanda

答えて

3

mtextname変数はそれぞれ、HelloCallback機能の範囲内にのみ存在します。

これは、mtext変数を持っていても、Hello関数内にあり、関数自体の外部からはアクセスできないことを意味します。

グローバルスコープにするには2つの方法があります—これらの変数をコード内のどこかにグローバルに定義するか(global mtext)、外部スコープで関数を呼び出して、新しい変数に戻り値を割り当てますdelImg機能で使用します。

+0

ありがとうございました –

+1

N.Perera:[私の質問に誰かが答えるときに_私はどうすればいいですか?_](http://stackoverflow.com/help/someone-答え) – martineau

関連する問題