當我單擊 tkinter 訊息框中的“X”按鈕時,我試圖重新啟動我的主 GUI/暫停程式流程。知道我該怎么做嗎?
PS:我已經閱讀了許多關于關閉主 GUI 本身的執行緒,但沒有特定于訊息框的內容
默認情況下,當單擊“確定”或關閉訊息框時,我的代碼會繼續使用 filedailog.askdirectory() 方法詢問我的輸出路徑
我的訊息框和后臺的主 GUI
uj5u.com熱心網友回復:
沒有簡單的方法可以將自定義處理程式添加到“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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/366586.html
