Python
 Computer >> コンピューター >  >> プログラミング >> Python

TkinterのCanvas(キャンバス)をクリアする方法を解説

Tkinterでは、ウィンドウ内にキャンバス(Canvas)を追加できます。キャンバスを作成すると、メモリ内部に描画データのためのストレージが確保されます。そのため、不要になったキャンバスの内容は、適切にクリアまたは削除してあげる必要があります。

キャンバスをクリアするには、delete()メソッドを使用します。引数に「all」を指定することで、Tkinterフレーム上に存在するすべてのキャンバスアイテムを一括で削除し、画面をまっさらな状態に戻すことができます。

サンプルコード

# tkinterライブラリをインポート
from tkinter import *

# tkinterフレームのインスタンスを作成
win = Tk()

# ウィンドウサイズを設定
win.geometry("650x250")

# キャンバスを作成
myCanvas = Canvas(win, bg="white", height=200, width=200)
cordinates = 10, 10, 200, 200
arc = myCanvas.create_arc(cordinates, start=0, extent=320, fill="red")
myCanvas.pack()

# キャンバスをクリア
myCanvas.delete('all')

win.mainloop()

上記のコードを実行すると、キャンバスがクリアされます。

実行結果

まずは、以下の行をコメントアウトした状態でコードを実行してみましょう。

myCanvas.delete('all')

この場合、赤い円弧が描画された次のようなウィンドウが表示されます。

TkinterのCanvas(キャンバス)をクリアする方法を解説

次に、コメントアウトを解除してもう一度実行すると、delete()メソッドによってキャンバス全体がクリアされ、何も描画されていない白いキャンバスだけが表示されます。

TkinterのCanvas(キャンバス)をクリアする方法を解説

補足:delete()メソッドの使い方

delete()メソッドは「all」以外にも、create_arc()やcreate_line()などで作成した個別のアイテムIDを指定して、特定の図形だけを削除することも可能です。動的に描画内容を更新したいアプリケーションでは、この方法を活用すると柔軟な画面制御が実現できます。

  1. Tkinterでツリービュー(Treeview)の全アイテムを一括削除・クリアする方法

    TkinterのTreeviewウィジェットとはTkinterのTreeviewウィジェットは、階層構造を持つ項目をリスト形式で表示するためのコンポーネントです。見た目や操作性は、WindowsやmacOSに搭載されているファイルエクスプローラーに似ています。Treeviewウィジェットを使って作成した項目リストをすべて削除したい場合には、delete()関数を使用します。この関数は、get_children()メソッドで取得した各アイテムを反復処理しながら呼び出すことで、ツリー内のすべての要素を一括して消去できます。サンプルコード:プログラミング言語のTreeviewを作成する以下の例では、

  2. Python Tkinterでキャンバス上の画像を中央に配置する方法

    Tkinterを使ってGUIアプリケーションを開発している際、Tkinterのキャンバス(Canvas)上に画像を読み込みたいケースはよくあります。本記事では、その画像をキャンバスの中央に配置する方法を解説します。anchorパラメータとはデフォルトでは、キャンバスは画像を自身の幅と高さに従って配置します。しかし、anchor(アンカー)パラメータに方向の値を渡すことで、画像の位置を任意の方向(N:北、S:南、E:東、W:西、NS、EWなど)に操作できます。アンカーは画像関数と一緒に呼び出されるパラメータで、キャンバス内における画像の方向や位置を定義します。このanchorパラメータを活用すれ