質問

私はPythonでトップレベルのTkウィンドウを自動的に閉じるするコードを記述しようとしていた。

私はそれが動作するようになってしまったが、私は把握することができませんでした道に沿って小さな問題に遭遇します。

次の二つのボタンは動作しますが、最初のものは、私は理由を理解していないいない...

任意のアイデア?

from Tkinter import *

root = Tk()
def doDestroy ():
    TL.destroy()

TL = Toplevel()
TL.b = Button (TL, text="lambda destroy", command=lambda: TL.destroy)
TL.b.pack()

TL.b2 = Button (TL, text="callback destroy", command=doDestroy)
TL.b2.pack()

de = lambda: TL.destroy()
TL.b3 = Button (TL, text="lambda that works", command=de)
TL.b3.pack()
root.mainloop()
役に立ちましたか?

解決

それはその結果を機能を返し、ないので。

あなたは置く必要があります:

command=TL.destroy

か、ラムダを使用する場合:

command=lambda: TL.destroy()
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top