gpt4 book ai didi

python - 他们是 grid_remember() 吗?可逆grid_forget()?

转载 作者:行者123 更新时间:2023-12-01 08:54:23 25 4
gpt4 key购买 nike

我对围绕 tkinter“grid_forget()”的文档感到困惑我知道这个函数不会永久删除归属于它的小部件,但我不知道如何再次调用它。另外,如果widget被遗忘在某个frame中,是否可以回调到同一个frame中?

最佳答案

您可以调用不带参数的 grid() 来反转 grid_remove() 的效果。

在以下示例中,有一个标签通过 grid 放置在窗口顶部。有一个切换按钮,可以在调用 gridgrid_remove 之间切换,以显示调用不带参数的 grid 会将消息恢复原样。

请注意,例如,当消息重新出现时,rowcolumncolumnspan 属性都会被记住。

import tkinter as tk

class Example():
def __init__(self):
self.root = tk.Tk()
self.root.grid_rowconfigure(2, weight=1)
self.root.grid_columnconfigure(1, weight=1)

self.toolbar = tk.Frame(self.root)
self.toggle = tk.Button(self.toolbar, text="Toggle the message",
command=self.toggle_message)
self.toggle.pack(side="left")

# simulate a typical app with a navigation area on the left and a main
# working area on the right
self.navpanel = tk.Frame(self.root, background="bisque", width=100, height=200)
self.main = tk.Frame(self.root, background="white", width=300, height=200, bd=1, relief='sunken')
self.message = tk.Label(self.root, text="Hello, world!")

self.toolbar.grid(row=0, column=0, columnspan=2)
self.message.grid(row=1, column=0, columnspan=2)
self.navpanel.grid(row=2, column=0, sticky="nsew")
self.main.grid(row=2, column=1, sticky="nsew")

def start(self):
self.root.mainloop()

def toggle_message(self):
if self.message.winfo_viewable():
self.message.grid_remove()
else:
self.message.grid()

if __name__ == "__main__":
Example().start()

如果将代码从使用 grid_remove 更改为使用 grid_forget,恢复标签不会将其放回到相同位置或使用相同选项。这是 grid_removegrid_forget 之间的主要区别 - grid_forget 实际上会忘记网格选项,而 grid_remove 会删除小部件但会记住设置。

关于python - 他们是 grid_remember() 吗?可逆grid_forget()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52875751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com