簡體   English   中英

按下按鈕后關閉按鈕 tkinter?

[英]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.

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