如何隐藏、恢复和删除 Tkinter 控件 | 您所在的位置:网站首页 › tkinter关闭按钮检测 › 如何隐藏、恢复和删除 Tkinter 控件 |
在本文中,我们将介绍如何通过单击按钮来隐藏,恢复 Tkinter 控件。最后,我们还将向你展示如何删除或杀死现有的 Tkinter 控件。 隐藏和恢复 Tkinter 控件pack_forget() 隐藏 Tkinter 控件的方法与 Tkinter 控件中的 pack 方法相反,我们可以通过调用 pack_forget()method 使控件不可见来隐藏 Tkinter 控件。 try: import Tkinter as tk except: import tkinter as tk class Test(): def __init__(self): self.root = tk.Tk() self.label=tk.Label(self.root, text = "Label") self.buttonForget = tk.Button(self.root, text = 'Click to hide Label', command=lambda: self.label.pack_forget()) self.buttonRecover = tk.Button(self.root, text = 'Click to show Label', command=lambda: self.label.pack()) self.buttonForget.pack() self.buttonRecover.pack() self.label.pack(side="bottom") self.root.mainloop() def quit(self): self.root.destroy() app = Test()pack_forget() 绑定 buttonForget 到按钮命令。 单击按钮后,它将隐藏标签控件,但是标签本身仍然存在,只是变得不可见。 我们需要再次调用 pack() 方法来将此控件变得可见,或者换句话说,将其恢复。 grid_forget() 隐藏 Tkinter 控件的方法如果使用 grid 布局如果将控件放置在 grid 布局管理器中,则应使用 grid_forget() 方法使 Tkinter 控件不可见。 try: import Tkinter as tk except: import tkinter as tk class Test(): def __init__(self): self.root = tk.Tk() self.label=tk.Label(self.root, text = "Label") self.buttonForget = tk.Button(self.root, text = 'Click to hide Label', command=lambda: self.label.grid_forget()) self.buttonRecover = tk.Button(self.root, text = 'Click to show Label', command=lambda: self.label.grid()) self.buttonForget.grid(column=0, row=0, padx=10, pady=10) self.buttonRecover.grid(column=0, row=1, padx=10, pady=10) self.label.grid(column=0, row=2, padx=10, pady=10) self.root.mainloop() def quit(self): self.root.destroy() app = Test()在这里,我们将 grid_forget 方法绑定到按钮的命令。 你可能会注意到,在再次调用 grid 方法之后,标签的位置在隐藏之前是不一样的。 如果我们打算将标签恢复到其原始位置,则应该使用 grid_remove 方法。 grid_remove() 隐藏 Tkinter 控件的方法,如果使用 grid 布局grid_remove() 隐藏控件,但它会记住诸如 column 和 row 的网格选项。 try: import Tkinter as tk except: import tkinter as tk class Test(): def __init__(self): self.root = tk.Tk() self.label=tk.Label(self.root, text = "Label") self.buttonForget = tk.Button(self.root, text = 'Click to hide Label', command=lambda: self.label.grid_remove()) self.buttonRecover = tk.Button(self.root, text = 'Click to show Label', command=lambda: self.label.grid()) self.buttonForget.grid(column=0, row=0, padx=10, pady=10) self.buttonRecover.grid(column=0, row=1, padx=10, pady=10) self.label.grid(column=0, row=2, padx=10, pady=20) self.root.mainloop() def quit(self): self.root.destroy() app = Test()我们将展示如何通过调用 destroy 方法来永久删除 Tkinter 控件。 try: import Tkinter as tk except: import tkinter as tk class Test(): def __init__(self): self.root = tk.Tk() self.label=tk.Label(self.root, text = "Label") self.buttonForget = tk.Button(self.root, text = 'Click to hide Label', command=lambda: self.label.destroy()) self.buttonRecover = tk.Button(self.root, text = 'Click to show Label', command=lambda: self.label.pack()) self.buttonForget.pack() self.buttonRecover.pack() self.label.pack(side="bottom") self.root.mainloop() def quit(self): self.root.destroy() app = Test()单击按钮后,按钮将被删除。 你可以尝试单击 buttonRecover 按钮,但会收到如下的 _tkinter.TclError 错误通知, Exception in Tkinter callback Traceback (most recent call last): File "D:\WinPython\WPy-3661\python-3.6.6.amd64\lib\tkinter\__init__.py", line 1702, in __call__ return self.func(*args) File "C:\Users\jinku\OneDrive\Bureaublad\test.py", line 17, in command=lambda: self.label.pack()) File "D:\WinPython\WPy-3661\python-3.6.6.amd64\lib\tkinter\__init__.py", line 2140, in pack_configure + self._options(cnf, kw)) _tkinter.TclError: bad window path name ".!label"多动手,多练习,多理解,加油!!! 觉得不错的话,记得帮我 @小象点个赞哟,祝大家都能学有所获! python相关问题集锦 如何更改 Tkinter 标签字体大小 如何在 Tkinter 中创建全屏窗口 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |