Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để di chuyển canvas Tkinter bằng Chuột?

Widget Tkinter Canvas là một trong những widget đa năng trong thư viện Tkinter. Nó được sử dụng để tạo ra các hình dạng, hình ảnh và các đối tượng hoạt hình khác nhau. Chúng tôi có thể di chuyển hình ảnh theo một hướng cụ thể trên tiện ích Canvas bằng cách sử dụng move () phương pháp.

Xác định hình ảnh và tọa độ dưới dạng tham số trong phương thức move (Image, x, y) để di chuyển đối tượng trong Canvas. Chúng tôi khai báo hình ảnh trên toàn cầu để di chuyển hoặc thay đổi vị trí.

Chúng tôi có thể làm theo các bước sau để cho phép hình ảnh của chúng tôi di chuyển trong canvas,

  • Đầu tiên, xác định tiện ích Canvas và thêm hình ảnh vào đó.

  • Xác định hàm move () để cho phép hình ảnh động trong Canvas.

  • Liên kết các nút chuột với chức năng cho phép di chuyển hình ảnh trong Canvas.

Ví dụ

# 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()

Đầu ra

Chạy đoạn mã trên sẽ hiển thị một cửa sổ chứa hình ảnh có thể được di chuyển qua cửa sổ bằng các nút chuột.

Làm thế nào để di chuyển canvas Tkinter bằng Chuột?

Bây giờ, hãy nhấp vào Canvas và dùng chuột kéo đối tượng xung quanh.