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

Python Tkinterのキャンバスから描画した線を削除する方法

TkinterのCanvas(キャンバス)ウィジェットは、GUIアプリケーション開発において非常に多くの場面で活用される便利な部品です。図形の描画はもちろん、グラフィックスや画像の作成など、さまざまな用途に使用できます。キャンバス上に線を描画するには、create_line(x, y, x1, y1, **options) メソッドを使用します。Tkinterでは、実線と破線の2種類の線を描くことが可能です。

作成した線をアプリケーションから削除したい場合は、delete() メソッドを使います。このメソッドに削除対象のアイテムIDを渡すことで、指定した図形だけをキャンバスから取り除くことができます。

サンプルコード

それでは、Canvasウィジェット上に定義した線を削除する具体例を見てみましょう。

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

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

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

# 図形を削除する関数を定義
def on_click():
    canvas.delete(line)

# キャンバスウィジェットを作成
canvas = Canvas(win, width=500, height=300)
canvas.pack()

# キャンバスウィジェットに線を追加
line = canvas.create_line(100, 200, 200, 35, fill="red", width=10)

# 削除用ボタンを作成
Button(win, text="Delete Shape", command=on_click).pack()

win.mainloop()

実行結果

上記のコードを実行すると、ボタンとキャンバス内の図形が表示されたウィンドウが立ち上がります。

Python Tkinterのキャンバスから描画した線を削除する方法

続いて、「Delete Shape」ボタンをクリックすると、キャンバス上に表示されていた赤い線が削除されます。このように、create_line() の戻り値として得られるアイテムIDを変数に保持しておき、delete() メソッドに渡すだけで、動的に図形を消去できます。

  1. Tkinterでウィンドウからウィジェットを削除する方法

    アプリケーション開発をしていると、不要になったウィジェットを画面から取り除きたい場面があります。Tkinterでは、destroy()メソッドを使うことで、ウィンドウやフレームからウィジェットを簡単に削除できます。削除用の関数を定義し、それをウィジェットに紐づけて呼び出すのが基本的な使い方です。実装例以下の例では、ボタンをクリックすると、ウィンドウ上のテキストラベルウィジェットが削除されるプログラムを作成しています。#Import the tkinter library from tkinter import * #Create an instance of tkinter frame wi

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

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