🖼️ 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を使って「こんなアプリ作ってみたい」などあれば、サンプルコードも用意できます!気軽に聞いてくださいね 😊