私は新しいコンテンツを書き込むことができるように(情報を更新する)tkinterのフレームをクリアしようとしていますが、どうにもできませんでした。私はこれらを知っています
frame.destroy()
frame.pack_forget()
frame.grid_forget()
ただし、frame.destroy()はフレームを完全に削除します。そして、他の2つは私が望む結果を与えることができませんでした。私が必要なのは、フレーム内のすべてのアイテムをクリアするだけですが、フレーム自体はそのままです。とにかくそれを行うにはありますか?
pack_forget
およびgrid_forget
は、ウィジェットをビューから削除するだけで、破壊はしません。ウィジェットの再利用を計画していない場合、唯一の本当の選択は、destroy
メソッドを使用してウィジェットを破棄することです。
それには、2つの選択肢があります。それぞれを個別に破壊するか、すべての子を破壊するフレームを破壊します。後者が一般的に最も簡単で効果的です。
コンテナフレームを破棄したくないと主張するので、セカンダリフレームを作成します。このセカンダリフレームを、削除するすべてのウィジェットのコンテナにしてから、この1つのフレームを、実行する親の内部に配置しますnot破棄します。次に、この1つのフレームを破棄するだけで、すべての内部ウィジェットが一緒に破棄されます。
http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/universal.html
w.winfo_children()
wのすべての子のリストを、最下位(最下位)から最上位(最上位)へのスタック順で返します。
for widget in frame.winfo_children():
widget.destroy()
フレーム内のすべてのウィジェットを破壊します。 2番目のフレームは必要ありません。