[英]Close button tkinter after pressing button?
我創建了一個完美運行的按鈕(這里不是整個代碼),但我希望一旦你按下“保存”按鈕,窗口就會消失。 有人知道怎么做嗎?
root2 = tk.Tk()
root2.geometry('200x100')
save_button = tk.Button(root2)
save_button.configure(text='Save', command=lambda: ask_parameter(ents1))
save_button.pack()
root2.mainloop()
基於您的問題中極其有限的代碼片段:我建議通過定義一個函數來調用它,該函數執行如下操作:
import tkinter as tk
def ask_and_close(root, ents):
ask_parameter(ents)
root.destroy()
ents1 = "something"
root2 = tk.Tk()
root2.geometry('200x100')
save_button = tk.Button(root2)
save_button.configure(text='Save', command=lambda: ask_and_close(root2, ents1))
save_button.pack()
root2.mainloop()
注意:如果您要創建多個窗口,我建議您使用tk.Toplevel()
而不是tk.TK()
調用tk.TK()
。
只需使用master.quit()
方法! 示例代碼:
from tkinter import *
class Test:
def __init__(self):
self.master = Tk()
self.button = Button(self.master, text="Push me!", command=self.closeScreen)
self.button.pack()
def closeScreen(self):
# In your case, you need "root2.quit"
self.master.quit()
test = Test()
mainloop()
我建議使用這里使用的destroy()
方法https://docs.python.org/3.8/library/tkinter.html#a-simple-hello-world-program 。
在代碼中調用destroy
方法的一種簡單方法是:
def ask_parameter_and_destroy(ents1):
ask_parameter(ents1)
root2.destroy()
root2 = tk.Tk()
root2.geometry('200x100')
save_button = tk.Button(root2)
save_button.configure(text='Save', command=lambda: ask_parameter_and_destroy(ents1))
save_button.pack()
root2.mainloop()
您可以在以下頁面上閱讀destroy()
和之前提出的quit()
方法之間的區別:root.destroy() 和 root.quit() 之間有什么區別? .
如果你的目標是創建一個保存文件的對話框,你可能會對tkinter.filedialog
庫感興趣,它已經准備好了處理文件保存的對話框。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.