0

次のコードを使用して、送信ボタンをクリックしたときにエントリ/入力ボックスの内容を印刷しようとしていますが、何も起こらないようです。

def submit_answer(response):
    print(response)


def get_answer():
    root = Tkinter.Tk()

    contentFrame = Tkinter.Frame(root)

    entryWidget = Tkinter.Entry(contentFrame)
    entryWidget['width'] = 50
    entryWidget.pack()

    contentFrame.pack()

    button = Tkinter.Button(root, text='Submit', command=submit_answer(entryWidget.get()))
    button.pack()

    root.mainloop()

ここで私が間違っていることを誰かが指摘できますか?

4

1 に答える 1

1

ValekHalfHeart のコメントは正しいです。

command=submit_answer(entryWidget.get()))一度実行するとsubmit(entryWidget.get())、その関数の結果 (おそらくNone) がクリック イベントとして使用されます。これはあなたが望むものではありません。

で囲むと、lambdaクリックするたびに関数が実行されます。それが機能するためには、あなたが持っている必要がありますcommand=lambda:submit_answer(entryWidget.get())

于 2012-11-13T06:47:05.250 に答える