キャンバスを非表示にして、表示したいときだけ表示する方法を教えてください。キャンバスを隠す/表示する
self.canvas.config(state='hidden')
ただあなただけあなたがpack
を使用していると言うコメントでは「無効」または「通常」
キャンバスを非表示にして、表示したいときだけ表示する方法を教えてください。キャンバスを隠す/表示する
self.canvas.config(state='hidden')
ただあなただけあなたが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
を呼び出すと、別の場所にウィジェットが表示されることがあります。一方、show_button.pack(side="top")
grid
前に、2行までcanvas.pack(side="top")
を移動し、例を参照するには、オプションなしでgrid()
への後続の呼び出しは、ウィジェットを置くように、設定のすべてを覚えているだろうgrid_remove
方法があります正確に同じ場所に戻る。
答えは、ウィジェットをどのように表示しているかによって異なります。あなたは 'pack'、' place'、 'grid'を使っていますか、別のウィジェット(別のキャンバスかテキストウィジェット)に埋め込んでいますか? –
パック。これまでの例で使用されていた場所を見たのは、ラベルをキャンバスに追加するときだけでした。 – confused
実際にもう少し気にさせてください。地図のキャンバスで、私がpack_propagateを使用している他の例でそれを見たのですが、ポップアップキャンバスの通常のパックに行っただけです。 – confused