2016-08-19 27 views
-1

私は問題を抱えています。Tkinterエントリは入力に関係なく浮動小数点値を返します

root = Tk() 
label1 = Label(root, text ="Enter String:") 
userInputString = Entry(root) 
label1.pack() 
userInputString.pack() 
submit = Button(root,text = "Submit", command = root.destroy) 
submit.pack(side =BOTTOM) 
root.mainloop() 
print(userInputString) 

私は実行すると、私はエントリの印刷で入力空自のため

print(userInputString) 

除い期待するように、コードのすべてが0.9355325

のようなものを返します。しかし、それは同じになることはありません動作背中合わせの値は常にランダムです。

私はPython 3.5とEclipse NeonをWindows 7マシンで使用しています。

最終的には、ポップアップしたユーザの文字列を受け入れ、その値を後で文字列として使用できるようにすることを目標としています。たとえば、ファイルパスを変更またはオープンする必要があります。

Entryはこれに使用する正しいウィジェットではありませんか?本質的にコードに何か問題がありますか?私はPythonに慣れていないし、強力なプログラミング経験がないので、これが文字列を受け取るように設定されていることさえ確実ではありません。

誰にでもアイデアがある場合は、事前におねがいします。

+2

まず、取得したいもの、つまりエントリのテキストは、 'userInputString'の' Entry'型のオブジェクトに対して 'get'メソッドを呼び出すことで取得できます。次に、 'root.mainloop()'の後のコードは、ウィンドウが閉じた後にのみ実行されます。 – nbro

+0

いつ入力フィールドの文字列を使いますか?私が特定の答えを出すように指定することができれば、そうでなければ、この質問を重複として示すべきです。 – nbro

+0

[Tkinter Entry "get"関数の重複は何も返されません](http://stackoverflow.com/questions/10727131/tkinter-entry-get-function-is-returning-nothing) – nbro

答えて

1

print文には2つの問題があります。まず、ウィジェット内のテキストではなくウィジェットを印刷します。 print(widget)はstr(widget)を出力します。これはウィジェットのtkパス名です。 '。'ルートウィンドウを表します。次の整数は、tkinterがウィジェットの名前として割り当てた番号です。 3.6現在では、それは代わりに「entry', so you would see ".エントリー」になります。

第二に、あなたはroot.destroy後、のpython Tkinterのラッパーがまだ存在しています。あなたがウィジェットを破壊した後、ウィジェットのテキストを印刷しようとしたが、TK 。それはラップウィジェットは、3.6で次の作業を行っているWin10

import tkinter as tk 
root = tk.Tk() 
label = tk.Label(root, text="Enter String:") 
entry = tk.Entry(root) 
def print_entry(event=None): 
    print(entry.get()) 
entry.bind('<Key-Return>', print_entry) 
entry.focus_set() 
submit = tk.Button(root, text="Submit", command=print_entry) 
label.pack() 
entry.pack() 
submit.pack() 
root.mainloop() 

ボーナス1:1のボックスにタブ移動またはそれをクリックせずに入力を開始することができますので、私は入力ボックスにフォーカスを設定

ボーナス2:私は鍵を縛ったマウスを使用せずに送信できるように、送信機能に転送します。このコマンドでは 'event'パラメータが必要ですが、ボタンで使用するには、デフォルトではNoneに設定する必要があります。

私が常時使用しているNMT Referenceは、かなり完成しており、ほとんど正しいです。

関連する問題