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

【Python】tkinterでマウスのクリック座標に沿って線を描画する方法

マウスの座標に沿って線を引くには、マウスがクリックされるたびにその座標を取得する関数を作成し、連続する2点間に線を描画する仕組みが必要です。ここでは、実際のコード例を使いながら、その実装方法をわかりやすく解説します。

実装の手順

  • tkinterライブラリをインポートし、tkinterフレーム(ウィンドウ)のインスタンスを作成します。

  • geometryメソッドを使って、ウィンドウのサイズを設定します。

  • ユーザー定義メソッド「draw_line」を作成し、マウスがクリックされるたびにx座標とy座標を取得します。そして、Canvasのcreate_line()メソッドを使用して、直前の点と現在の点の間に線を描画します。

  • マウスの左クリックイベントをdraw_lineメソッドにバインド(関連付け)します。

  • 最後に、アプリケーションウィンドウのmainloopを実行します。

コード例

# ライブラリをインポート
import tkinter as tk

# tkinterのインスタンスを作成
win = tk.Tk()

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

# 連続する2点間に線を描画するメソッド
def draw_line(e):
   x, y = e.x, e.y
   if canvas.old_coords:
      x1, y1 = canvas.old_coords
      canvas.create_line(x, y, x1, y1, width=5)
   canvas.old_coords = x, y

canvas = tk.Canvas(win, width=700, height=300)
canvas.pack()
canvas.old_coords = None

# マウスの左ボタンをバインド
win.bind('<ButtonPress-1>', draw_line)

win.mainloop()

実行結果

このプログラムを実行すると、マウスの左クリック位置が追跡され、連続する2つのクリック地点ごとに線が描画されます。クリックを繰り返すことで、自由に線をつなぎ合わせて図形を描くことも可能です。

【Python】tkinterでマウスのクリック座標に沿って線を描画する方法

  1. Tkinterキャンバスでオブジェクトの座標を取得する方法を解説

    TkinterのCanvas(キャンバス)ウィジェットは、アプリケーションにGUI機能を提供する強力なツールです。図形の描画やオブジェクトのアニメーション、キャンバス上の既存アイテムの設定などに活用できます。キャンバス上に図形を作成する際は、Canvasアイテムコンストラクタに対して図形のサイズと座標を指定する必要があります。そして、すでに配置したアイテムの座標を後から取得したい場合には、coords(item)メソッドを使用します。このメソッドは、キャンバスウィジェット上の図形の座標をリスト形式で返します。coords()メソッドの基本的な使い方以下のサンプルコードでは、キャンバス上に楕円を

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

    Tkinterでは、ウィンドウ内にキャンバス(Canvas)を追加できます。キャンバスを作成すると、メモリ内部に描画データのためのストレージが確保されます。そのため、不要になったキャンバスの内容は、適切にクリアまたは削除してあげる必要があります。キャンバスをクリアするには、delete()メソッドを使用します。引数に「all」を指定することで、Tkinterフレーム上に存在するすべてのキャンバスアイテムを一括で削除し、画面をまっさらな状態に戻すことができます。サンプルコード# tkinterライブラリをインポート from tkinter import * # tkinterフレームのインス