隐藏/显示画布

时间:2017-04-26 16:40:13

标签: python-3.x tkinter

如何隐藏画布,只显示何时显示?

self.canvas.config(state='hidden')

只是提出错误,说你只能使用'禁用'或'正常'

1 个答案:

答案 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")两行 另一方面,

gridgrid_remove方法会记住所有设置,因此后续调用grid()而没有选项会将小部件重新置于完全相同的地方。