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

マウスでTkinterキャンバスを移動する方法は?


Tkinter Canvasウィジェットは、Tkinterライブラリの用途の広いウィジェットの1つです。さまざまな形状、画像、アニメーションオブジェクトを作成するために使用されます。 move()を使用して、Canvasウィジェットで画像を特定の方向に移動できます メソッド。

画像と座標をmove(Image、x、y)メソッドのパラメーターとして定義して、Canvas内のオブジェクトを移動します。位置を移動または変更するために、画像をグローバルに宣言します。

これらの手順に従って、画像をキャンバス内で移動できるようにすることができます。

  • まず、Canvasウィジェットを定義し、それに画像を追加します。

  • 画像がCanvas内で動的になるようにmove()関数を定義します。

  • キャンバス内で画像を移動できる機能でマウスボタンをバインドします。

# Import the required libraries
from tkinter import *
from PIL import Image, ImageTk

# Create an instance of tkinter frame
win = Tk()

# Set the size of the tkinter window
win.geometry("700x350")

# Define a Canvas widget
canvas = Canvas(win, width=600, height=400, bg="white")
canvas.pack(pady=20)

# Add Images to Canvas widget
image = ImageTk.PhotoImage(Image.open('logo.png'))
img = canvas.create_image(250, 120, anchor=NW, image=image)

def left(e):
   x = -20
   y = 0
   canvas.move(img, x, y)

def right(e):
   x = 20
   y = 0
   canvas.move(img, x, y)

def up(e):
   x = 0
   y = -20
   canvas.move(img, x, y)

def down(e):
   x = 0
   y = 20
   canvas.move(img, x, y)

# Define a function to allow the image to move within the canvas
def move(e):
   global image
   image = ImageTk.PhotoImage(Image.open('logo.png'))
   img = canvas.create_image(e.x, e.y, image=image)

# Bind the move function
canvas.bind("<B1-Motion>", move)

win.mainloop()
をバインドします

出力

上記のコードを実行すると、マウスボタンを使用してウィンドウ上を移動できる画像を含むウィンドウが表示されます。

マウスでTkinterキャンバスを移動する方法は?

次に、キャンバスをクリックして、マウスでオブジェクトをドラッグします。


  1. Tkinter Canvasをクリアする方法は?

    Tkinterは、ウィンドウにキャンバスを追加する方法を提供します。キャンバスを作成すると、メモリ内のストレージがラップされます。 tkinterでキャンバスを作成している間、クリアまたは削除する必要のあるメモリを効果的に消費します。 キャンバスをクリアするには、 delete()を使用できます 方法。 「all」を指定することで、tkinterフレームに存在するすべてのキャンバスを削除してクリアできます。 例 #Import the tkinter library from tkinter import * #Create an instance of tkinter frame win

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

    Tkinterを使用してGUIベースのアプリケーションを作成していて、Tkinterキャンバスに画像をロードしたいとします。 デフォルトでは、キャンバスはその幅と高さに応じて画像をロードしますが、「方向」を渡すことで、画像の位置を任意の方向(N、S、E、W、NS、EWなど)に操作できます。アンカーパラメータの値。アンカーは、画像関数とともに呼び出されるパラメータです。キャンバス内の画像の方向または位置を定義します。 アンカーパラメータを使用することで、テキストと画像を任意の方向に揃えることができます。今のところ、ラベルを使用して画像ラベルを作成します そのような機能、 Label(root