2016-08-10 212 views
0

私はPython 3.4でTkinterを使ってテキストベースのゲームを作っていますが、Entryウィジェットから文字列を取得する方法は分かりません。Py_Var#、#が数字です。私は似たような質問に対する答えを見てきましたが、私が必要とするものとはまったく一致していません。 stackoverflowのとその奇妙なもののワット読み/ Eを使用してPython Tkinter StringVarのみPy_Var(数値)を表示

from tkinter import * 

win = Tk() 
win.geometry("787x600") 

playername = StringVar() 

def SubmitName(): 
    playername.get 
    #messagebox.showinfo("Success", playername) 
    print(playername) 

frame3 = Frame(win) 
frame3.pack() 
label1 = Label(frame3, text="You awaken in a room, with no memories of yourself or your past. ") 

label2 = Label(frame3, text="First, how about you give yourself a name:") 

label1.config(font=("Courier", 11)) 
label2.config(font=("Courier", 11)) 

entry1 = Entry(frame3, textvariable=playername) 
entry1.config(font=("Courier", 11)) 

label1.grid(row=0, column=0, columnspan=3) 
label2.grid(row=1, column=0) 

entry1.grid(row=1, column=1) 

bnamesub= Button(frame3, text="Submit", command=lambda: SubmitName()) 
bnamesub.grid() 

win.mainloop() 

また、最初の時間:ここではコードの関連部分です。

答えて

0
from tkinter import * 
import pickle 

win = Tk() 
win.geometry("787x600") 

def SubmitName(): 
     playername = entry1.get() 
     messagebox.showinfo("Success", playername) 
     print(playername) 

frame3 = Frame(win) 
frame3.grid() 
label1 = Label(frame3, text="You awaken in a room, with no memories of yourself or your past. ") 

label2 = Label(frame3, text="First, how about you give yourself a name:") 

label1.config(font=("Courier", 11)) 
label2.config(font=("Courier", 11)) 

#name entered is a StringVar, returns as Py_Var7, but I need it to return the name typed into entry1. 
entry1 = Entry(frame3) 
entry1.config(font=("Courier", 11)) 

label1.grid(row=0, column=0, columnspan=3) 
label2.grid(row=1, column=0) 

entry1.grid(row=1, column=1) 

bnamesub= Button(frame3, text="Submit", command=lambda: SubmitName()) 
bnamesub.grid() 


playername = StringVar()を失。私たちは本当にそれを必要としません。
- 機能内で変更されました。変更されましたplayername.getplayername = entry1.get();
-added frame3.grid()(ジオメトリ管理なしで、ウィジェットは画面に表示できません)。
- 少し編集:Pythonでは、コメントは#という記号で作成されます。そこで*#に変更しました。

+0

Woohoo! Parvizさん、ありがとうございました。どこに行っても、お互いに整列していない少し異なる答えがありました。ありがとうございました。 –

+0

あなたはようこそ! –

2

SubmitName()に2つの間違いがあります。

まず、次のようなテキストを取得する必要があります。

txt = playername.get() 

次にあなたがtxtことを印刷する必要があります。

print(txt) 

間違いによっては、あなたがStringVar変数自体を印刷しました。私は何が変わった

関連する問題