亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

以編程方式按下工具欄上的“X”按鈕?

以編程方式按下工具欄上的“X”按鈕?

函數式編程 2021-08-11 19:48:57
我知道我可以攔截按下X按鈕,protocol("WM_DELETE_WINDOW", do_something)但是我很難弄清楚如何激活此按鈕或至少是按下此按鈕時觸發的協議。這是情況。我有2節課。我的主要Tk班級和我的Menu班級。當我設置命令以使用exit菜單中的按鈕關閉程序時,我希望此按鈕X與Tk類上的按鈕執行完全相同的操作。現在我知道我可以簡單地調用傳遞給菜單類的控制器,然后調用我構建的方法來處理關閉事件,但是我正在嘗試以不需要這樣做的方式構建這個菜單類菜單類。這將允許我在幾乎不需要編輯的情況下在我構建的任何應用程序上使用菜單類。我無法找到告訴我如何以編程方式激活"WM_DELETE_WINDOW"協議的帖子或某些文檔。如果不清楚我想要什么,這是一張圖片。只是我希望退出按鈕完全按照X按鈕的功能執行。主要類:import tkinter as tkimport PIP_MENUclass PIP(tk.Tk):    def __init__(self):        super().__init__()        PIP_MENU.start(self)        self.protocol("WM_DELETE_WINDOW", self.handle_close)    def handle_close(self):        print("Closing")        self.quit()if __name__ == '__main__':    PIP().mainloop()單獨.py文件上的菜單類:import tkinter as tkclass Menu(tk.Menu):    def __init__(self, controller):        super().__init__()        self.controller = controller        controller.config(menu=self)        file_menu = tk.Menu(self, tearoff=0)        self.add_cascade(label="File", menu=file_menu)        file_menu.add_command(label="Exit", command=self.handle_exit)    def handle_exit(self):        # What can I do here that will be handled by        # protocol "WM_DELETE_WINDOW" of the main class?        # All I can find is destroy() and quit()        # But both of these do not get handled by "WM_DELETE_WINDOW".def start(controller):    Menu(controller)
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號