🖼️ Python Canvas の概要
Canvas は、図形描画や画像表示、インタラクティブな操作が可能なウィジェットで、tkinter ライブラリの一部です。
目次
🔧 基本構文
from tkinter import * root = Tk() canvas = Canvas(root, width=400, height=300, bg="white") canvas.pack() root.mainloop()
✏️ 主な描画メソッド
| メソッド | 内容 | 
|---|---|
| create_line(x1, y1, x2, y2, ...) | 線を描く | 
| create_rectangle(x1, y1, x2, y2) | 長方形を描く | 
| create_oval(x1, y1, x2, y2) | 楕円(円)を描く | 
| create_polygon(x1, y1, x2, y2, ...) | 多角形を描く | 
| create_text(x, y, text="...") | テキスト表示 | 
| create_image(x, y, image=...) | 画像表示(PhotoImageなど使用) | 
🎯 オブジェクトの操作
描画した要素は「オブジェクトID」で管理され、個別に動かしたり変更できます。
obj = canvas.create_rectangle(50, 50, 100, 100, fill="blue") canvas.move(obj, 10, 0) # 移動 canvas.itemconfig(obj, fill="red") # 色変更 canvas.delete(obj) # 削除
🎮 イベントとインタラクション
マウスイベントなどを使って、ユーザー操作に反応できます。
def on_click(event):
    canvas.create_oval(event.x-10, event.y-10, event.x+10, event.y+10, fill="green")
canvas.bind("<Button-1>", on_click)
🔄 アニメーションも可能
after()を使うことで、一定時間ごとに処理を繰り返せます。
def animate():
    canvas.move(obj, 5, 0)
    root.after(50, animate)
animate()
📌 用途の例
- ゲーム(ブロック崩し・シューティングなど)
- 図形エディタ・ドローイングツール
- 簡単なチャートやグラフ
- インタラクティブなシミュレーション
✅ まとめ
| 特徴 | 説明 | 
|---|---|
| 高い自由度 | 座標で直接描画できる | 
| インタラクティブ | マウスやキーボード操作が可能 | 
| アニメーション | after()で動的表現が可能 | 
| 他のウィジェットとの組み合わせも可能 | Frameなどと併用できる | 
Canvasを使って「こんなアプリ作ってみたい」などあれば、サンプルコードも用意できます!気軽に聞いてくださいね 😊
 
	 
		 
			 
			 
			