关闭时执行命令 "X" Tkinter MessageBox
Command execution on closing "X" Tkinter MessageBox
当我点击我的 tkinter 消息框中的“X”按钮时,我试图重新启动我的主要 GUI/Halt 程序流程。知道我该怎么做吗?
PS:我已经阅读了很多关于关闭主 GUI 本身的帖子,但没有特定于 messagebox
默认情况下,我的代码在单击“确定”或关闭消息框时使用 filedailog.askdirectory() 方法继续询问我输出路径
My message box and the main GUI in the background
没有简单的方法可以将自定义处理程序添加到“X”按钮。我认为最好使用消息框的 messagebox.askokcancel()
变体而不是 showinfo
,如果返回的结果为 False,则停止程序:
import tkinter as tk
from tkinter import messagebox, filedialog
root = tk.Tk()
def show_messagebox():
result = messagebox.askokcancel("Output path", "Please select an output file path")
if result:
filedialog.askdirectory()
else:
messagebox.showinfo("Program is halted")
tk.Button(root, text="Show messagebox", command=show_messagebox).pack()
root.mainloop()
或者,更简单的,你可以直接显示 filedialog.askdirectory()
。如果用户不想选择目录,他们可以点击“取消”按钮,然后程序检查是否返回空值,如果是则停止:
import tkinter as tk
from tkinter import messagebox, filedialog
root = tk.Tk()
def show_askdirectory():
directory = filedialog.askdirectory(title="Please select an output file path")
if not directory:
messagebox.showinfo(message="The program is halted")
else:
messagebox.showinfo(message="Chosen directory: " + directory)
tk.Button(root, text="Choose directory", command=show_askdirectory).pack()
root.mainloop()
当我点击我的 tkinter 消息框中的“X”按钮时,我试图重新启动我的主要 GUI/Halt 程序流程。知道我该怎么做吗?
PS:我已经阅读了很多关于关闭主 GUI 本身的帖子,但没有特定于 messagebox
默认情况下,我的代码在单击“确定”或关闭消息框时使用 filedailog.askdirectory() 方法继续询问我输出路径
My message box and the main GUI in the background
没有简单的方法可以将自定义处理程序添加到“X”按钮。我认为最好使用消息框的 messagebox.askokcancel()
变体而不是 showinfo
,如果返回的结果为 False,则停止程序:
import tkinter as tk
from tkinter import messagebox, filedialog
root = tk.Tk()
def show_messagebox():
result = messagebox.askokcancel("Output path", "Please select an output file path")
if result:
filedialog.askdirectory()
else:
messagebox.showinfo("Program is halted")
tk.Button(root, text="Show messagebox", command=show_messagebox).pack()
root.mainloop()
或者,更简单的,你可以直接显示 filedialog.askdirectory()
。如果用户不想选择目录,他们可以点击“取消”按钮,然后程序检查是否返回空值,如果是则停止:
import tkinter as tk
from tkinter import messagebox, filedialog
root = tk.Tk()
def show_askdirectory():
directory = filedialog.askdirectory(title="Please select an output file path")
if not directory:
messagebox.showinfo(message="The program is halted")
else:
messagebox.showinfo(message="Chosen directory: " + directory)
tk.Button(root, text="Choose directory", command=show_askdirectory).pack()
root.mainloop()