在 Tkinter 中运行窗口最小化命令

rec*_*gle 5 python tkinter windows-7

每当按下最小化按钮时,我都会有一个 Tkinter 窗口我想运行一个命令,我该怎么做?

我知道w.protocol("WM_DELETE_WINDOW", w.command)将在退出时运行命令。

Bry*_*ley 5

您可以绑定到<Unmap>事件。

例如,运行以下代码,然后最小化主窗口。当主窗口最小化时,工具窗口应该消失。

import Tkinter as tk

class App:
    def __init__(self):
        self.root = tk.Tk()
        tk.Label(self.root, text="main window").pack()
        self.t = tk.Toplevel()
        tk.Label(self.t, text="tool window").pack()
        self.root.bind("<Unmap>", self.OnUnmap)
        self.root.bind("<Map>", self.OnMap)
        self.root.mainloop()

    def OnMap(self, event):
        # show the tool window
        self.t.wm_deiconify()

    def OnUnmap(self, event):
        # withdraw the tool window
        self.t.wm_withdraw()

if __name__ == "__main__":
    app=App()
Run Code Online (Sandbox Code Playgroud)