Tkinter で非グラフィック ゲームを作成しようとしていますが、エントリ ウィジェットに問題があります。"<Return>"
何かを印刷する前に、押されるのを待つにはどうすればよいですか?
from Tkinter import *
class App:
def __init__(self, master):
frame = Frame(master)
frame.pack()
f = Frame(master, width=500, height=300)
f.pack(fill=X, expand=True)
mt = StringVar()
menubar = Menu(master)
menubar.add_command(label="New Game", command=self.new_game)
menubar.add_command(label="Continue Game", command=self.continue_game)
master.config(menu=menubar)
maintext = Label(master, fg="blue", textvariable=mt)
maintext.pack(side=BOTTOM)
mt.set("")
self.e1 = Entry(master)
self.e1.pack()
self.e1.bind("<Return>")
self.e1.lower()
global mt
def new_game(self):
mt.set("What do you want your username to be?")
self.e1.lift()
#wait for <Return> to be pressed
mt.set("Welcome " + self.e1.get())
def continue_game(self):
mt.set("Type your username in.")
root = Tk()
app = App(root)
root.mainloop()
トップメニューバーの「New Game」をクリックすると、入力ボックスが表示され、何かを入力するのを待ってから、Enterをクリックします。次に、「Welcome」+(ユーザーが入力した内容) を出力します。実際に New game をクリックすると、すぐに "Welcome" と表示されます。
印刷とは、「mt.set」によって参照される、下部のラベルを別のものに関連付けることを意味します。