Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

마우스로 Tkinter 캔버스를 이동하는 방법은 무엇입니까?

<시간/>

Tkinter Canvas 위젯은 Tkinter 라이브러리의 다양한 위젯 중 하나입니다. 다양한 모양, 이미지 및 애니메이션 개체를 만드는 데 사용됩니다. move() 를 사용하여 Canvas 위젯에서 특정 방향으로 이미지를 이동할 수 있습니다. 방법.

캔버스에서 객체를 이동시키기 위해 move(Image, x,y) 메소드에서 이미지와 좌표를 매개변수로 정의합니다. 위치를 이동하거나 변경하기 위해 이미지를 전역으로 선언합니다.

다음 단계에 따라 이미지를 캔버스 내에서 이동할 수 있습니다.

  • 먼저 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 캔버스를 이동하는 방법은 무엇입니까?

이제 캔버스를 클릭하고 마우스로 개체를 드래그합니다.