2011-12-07 3 views
0

私は入力ボックスを持っていて、テキストを入力してボタンをクリックすると、ラベルにテキストが表示されます。入力ボックスの内容をラベルにどのように渡すのですか?

私は次のように書いていますが、入力ボックスの内容をラベルにバインドできません。

from Tkinter import * 

root = Tk() 


e = Entry(root) 
e.pack() 
def get_me(): 
    e.get() 
    print e.get() 
    #e.delete(0, END) 

bn = Button(root, text = "Click me", command = get_me) 
bn.pack() 

la = Label(root, font = "verdana 15 italic bold", width = 20, bg = "BLUE", fg = "RED", text = get_me) 
la.pack() 

mainloop() 

答えて

3

Tkinterのウィジェットパラメータがで変更することができます。より詳細な情報については

from Tkinter import * 

root = Tk() 

e = Entry(root) 
e.pack() 
def get_me(): 
    v.set(e.get()) 

bn = Button(root, text = "Click me", command=get_me) 
bn.pack() 

v = StringVar() 
# we are creating a StringVar, assigning it to our label, and then change our StringVar 
la = Label(root, font = "verdana 15 italic bold", 
       width = 20, bg = "BLUE", fg = "RED", textvariable=v) 
la.pack() 

mainloop() 

を辞書のような構文は、 のインスタンス化後です。テキストの場合は、変更するプロパティが「テキスト」である - そう

、ちょうどあなたの例であなたのボタンのコールバックに次の行を追加します

la["text"] = e.get() 

をより大きなプログラムでは、管理するようにしてくださいより良い変数名、およびどの変数がグローバルなのかなどが含まれます。あなたのTkinterウィジェットをクラスのメンバーとしてバンドルしておき、グローバル変数を使って互いにアクセスするのではなく、

+0

'configure'メソッドを使って同じ結果を得ることもできます:' la.configure(text = "text") ' –

0

私はあなたがTkinterのラベルのテキストを変更することができるとは思わないが、あなたは、この使用することができます:effbot

+0

sinan @Thanks a ton。それは働いた –

+0

@ sinan:はい、あなたはラベルのテキストを変更することができます。 'la.configure(text = 'my new text')' –

関連する問題