3
每当最小化按钮被按下时,我有一个Tkinter窗口我想运行一个命令,我该怎么做?在Tkinter窗口最小化时运行一个命令
我知道w.protocol(“WM_DELETE_WINDOW”,w.command)将在退出时运行命令。
每当最小化按钮被按下时,我有一个Tkinter窗口我想运行一个命令,我该怎么做?在Tkinter窗口最小化时运行一个命令
我知道w.protocol(“WM_DELETE_WINDOW”,w.command)将在退出时运行命令。
您可以绑定到事件。
例如,运行以下代码,然后最小化主窗口。主窗口最小化时,工具窗口应该消失。
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()
谢谢你的完美! – rectangletangle 2010-10-01 18:42:07
我一直在寻找所有这些的Tcl文档,我不认为有一种方法来实现这一点。除了WM_DELETE_WINDOW之外,我看到的唯一协议是WM_SAVE_YOURSELF,它已被弃用,而不是您想要的,WM_TAKE_FOCUS根据手册页显示“太复杂了”。出于好奇,你想做什么? – 2010-10-01 04:44:46
我有一个工具窗口以及我的主程序。当我最小化主程序时,我也会将工具窗口隐藏起来。 – rectangletangle 2010-10-01 07:34:48