簡體   English   中英

如何使用帶按鈕的 lambda 刪除 tkinter 窗口

[英]how to delete a tkinter window using lambda with a button

我正在做一個在不同窗口上使用許多 tkinter 按鈕的項目,我希望能夠使用 lambda 關閉一個窗口並同時運行一個函數,但該窗口沒有關閉。 如果我停止使用 lambda,它會再次工作。 我在 repl 和 idle 中嘗試過,但得到了相同的結果。 這有效:

tk = Tk()
tk.geometry('500x300')

def function():
  print('hi')

btn = Button(tk, text='hi', command = tk.destroy)
btn.pack()
tk.mainloop()

但這不是:

from tkinter import*
tk = Tk()
tk.geometry('500x300')

def function():
  print('hi')

btn = Button(tk, text='hi', command = lambda:[ function(),tk.destroy])
btn.pack()
tk.mainloop()

為什么?

而不是使用:

btn = Button(tk, text='hi', command = lambda:[ hello.hi(),tk.destroy])

采用:

btn = Button(tk, text='hi', command = lambda:[hello.hi(),tk.destroy()])

它應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM