如何隐藏画布,只显示何时显示?
self.canvas.config(state='hidden')
只是提出错误,说你只能使用'禁用'或'正常'
答案 0 :(得分:0)
在评论中,您说您正在使用pack
。在这种情况下,您可以使用pack_forget
隐藏它。
import tkinter as tk
def show():
canvas.pack()
def hide():
canvas.pack_forget()
root = tk.Tk()
root.geometry("400x400")
show_button = tk.Button(root, text="show", command=show)
hide_button = tk.Button(root, text="hide", command=hide)
canvas = tk.Canvas(root, background="pink")
show_button.pack(side="top")
hide_button.pack(side="top")
canvas.pack(side="top")
root.mainloop()
但是,在这种情况下使用grid
通常会更好。 pack_forget()
并不记得窗口小部件的位置,因此下次调用pack
窗口小部件可能会在不同的位置结束。要查看示例,请在canvas.pack(side="top")
show_button.pack(side="top")
两行
另一方面, grid
有grid_remove
方法会记住所有设置,因此后续调用grid()
而没有选项会将小部件重新置于完全相同的地方。