2016-09-06 20 views
5

私は値を入力する必要があるプログラムを作っています。メッセージウィジェット(またはラベルウィジェット)を介して値を表示し、新しい入力が入るたびに更新します。Python:メッセージウィジェットのテキストをユーザー入力に変更する方法

def Enter(): 
    s = v.get() 
    print (v.get()) 

    e.delete(0, END) 
    e.insert(0, "") 

#Code, Code, Code 
... 

# Area To Enter Text 
v = StringVar() 
e = Entry(root, textvariable=v) 
e.pack() 

m = Message(root, text = "Your Input") 
m.pack() 

# Enter Button 
b = Button(root, text="OK", command=Enter) 
b.pack() 

メッセージウィジェットのテキストをvの変数に置き換える方法はありますか?

注:私はtextvariabletextを交換した場合

、それは私は、ユーザーがボタンを押したときに、それは更新する必要があるとして、すべての文字キーが押された後のテキストを更新します。


私の完全なコード:

from tkinter import * 
import os 

# All Functions Below 
def callback(): 
    print ("HI") 

def Exit(): 
    os._exit(0) 

def Enter(): 
    s = e.get() 
    print (e.get()) 
    m.configure(text=s) 
    e.delete(0, END) 
    e.insert(0, "") 

def Population(): 
    root = Tk 

    root.mainloop() 

def SurvivalRate(): 
    root = Tk 

    root.mainloop() 

def BirthRate(): 
    root = Tk 

    root.mainloop() 

def NewGen(): 
    root = Tk 

    root.mainloop() 

root = Tk() 


generation = 0 

menubar = Menu(root) 
menubar.add_command(label="Hello!", command=callback) 
menubar.add_command(label="Quit!", command=Exit) 


# Area To Enter Text 
e = Entry(root) 
e.pack() 

m = Message(root, text = e) 
m.pack() 

# Enter Button 
b = Button(root, text="OK", command=Enter) 
b.pack() 

Pop = Button(root, text="Population", command=Population) 
Pop.pack() 
+0

tkinterボタンの 'command'パラメータを見てください。 – galah92

+0

ありがとう!数時間を教えなければならない、今夜後にそれを見てください:) –

+0

Ok。しかし、 'PY_VAR0'の代わりに' .56748976'を返します。しかし、あなたが戻ってくるまで私は待つことができます。他の誰かが助けることができれば、それは高く評価されるでしょう。 – DavalliTV

答えて

4

単純に追加します。

m.configure(text=s) 

あなたの関数に:

def Enter(): 
    s = v.get() 
    print (v.get()) 
    m.configure(text=s) 
    e.delete(0, END) 
    e.insert(0, "") 

副題として、StringVar()は必ずしも必要ではありません。以下のコードはまったく同じことを行います:

def Enter(): 
    s = e.get() 
    m.configure(text=s) 
    e.delete(0, END) 
    e.insert(0, "") 

#Code, Code, Code 
... 

# Area To Enter Text 
e = Entry(root) 
e.pack() 

m = Message(root, text = "Your Input") 
m.pack() 

# Enter Button 
b = Button(root, text="OK", command=Enter) 
b.pack() 

root.mainloop() 
+0

ありがとうございます。しかし、私は文字を入力するので、ラベルは 'PY_VAR0'と言う。空白のままにする方法はありますか? – DavalliTV

+0

@JackBondあなたのコードのスニペットを実行します。基本的なtkinterウィンドウに埋め込むと、あなたの入力です。あなたの完全なコードは何ですか? –

+0

'StringVar()' btwは必要ありません。 's = e.get()'を直接実行することができます。 –

関連する問題