Tkinterのキャンバスアイテムを動的に再設定する方法(itemconfigの使い方)
TkinterのCanvasウィジェットを使うと、テキストや画像、図形など、さまざまな視覚的コンテンツを作成してウィジェット上に配置できます。すでに描画したキャンバスアイテムを後から動的に変更したい場合には、tkinterが提供する itemconfig(**options) メソッドを利用します。このメソッドを使えば、キャンバス上のアイテムのプロパティや属性を自由に再設定できます。
たとえば、キャンバス内に線(ライン)を描画したあとでも、itemconfig() を呼び出すだけで、その色や太さなどを簡単に変更することが可能です。
サンプルコード
# 必要なライブラリをインポート
from tkinter import *
# tkinterのフレーム(ウィンドウ)のインスタンスを作成
win = Tk()
# ウィンドウのサイズを設定
win.geometry("700x350")
# 図形の色を変更する関数を定義
def on_click():
canvas.itemconfig(line, fill="green")
# キャンバスウィジェットを作成
canvas = Canvas(win, width=500, height=300)
canvas.pack()
# キャンバスに線を追加
line = canvas.create_line(100, 200, 200, 35, fill="yellow", width=5)
# 色を更新するためのボタンを作成
Button(win, text="Update the Color", command=on_click).pack()
win.mainloop()実行結果
上記のコードを実行すると、ボタンと、キャンバス上に描画された線が表示されたウィンドウが現れます。

次に、ボタンをクリックすると、キャンバスアイテム(線)の色が黄色から緑色へと変化します。

このように、itemconfig() メソッドを使えば、コードの再実行やアイテムの再作成を行うことなく、実行中のアプリケーション内でキャンバスアイテムの見た目を柔軟に更新できます。色(fill)以外にも、線の太さ(width)や破線スタイル(dash)など、さまざまなオプションを同様の手順で変更可能です。
-
TkinterのCanvas(キャンバス)をクリアする方法を解説
Tkinterでは、ウィンドウ内にキャンバス(Canvas)を追加できます。キャンバスを作成すると、メモリ内部に描画データのためのストレージが確保されます。そのため、不要になったキャンバスの内容は、適切にクリアまたは削除してあげる必要があります。キャンバスをクリアするには、delete()メソッドを使用します。引数に「all」を指定することで、Tkinterフレーム上に存在するすべてのキャンバスアイテムを一括で削除し、画面をまっさらな状態に戻すことができます。サンプルコード# tkinterライブラリをインポート from tkinter import * # tkinterフレームのインス
-
Python Tkinterでキャンバス上の画像を中央に配置する方法
Tkinterを使ってGUIアプリケーションを開発している際、Tkinterのキャンバス(Canvas)上に画像を読み込みたいケースはよくあります。本記事では、その画像をキャンバスの中央に配置する方法を解説します。anchorパラメータとはデフォルトでは、キャンバスは画像を自身の幅と高さに従って配置します。しかし、anchor(アンカー)パラメータに方向の値を渡すことで、画像の位置を任意の方向(N:北、S:南、E:東、W:西、NS、EWなど)に操作できます。アンカーは画像関数と一緒に呼び出されるパラメータで、キャンバス内における画像の方向や位置を定義します。このanchorパラメータを活用すれ