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

Làm thế nào để di chuyển một hình ảnh trong canvas Tkinter bằng các phím mũi tên?

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ể cung cấp thuộc tính động cho hình ảnh được xác định trong 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 di chuyển (Hình ảnh, x, y) để di chuyển Hình ảnh trong Canvas. Chúng tôi khai báo hình ảnh trên toàn cầu để theo dõi vị trí Hình ảnh trong Canvas.

Chúng tôi có thể làm theo các bước sau để làm cho hình ảnh của chúng tôi có thể 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 move () chức năng cho phép hình ảnh động trong Canvas.

  • Ràng buộc các phím mũi tên 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('favicon.ico'))
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)

# Bind the move function
win.bind("<Left>", left)
win.bind("<Right>", right)
win.bind("<Up>", up)
win.bind("<Down>", down)

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 phím mũi tên.

Làm thế nào để di chuyển một hình ảnh trong canvas Tkinter bằng các phím mũi tên?

Bạn có thể di chuyển đối tượng trên canvas xung quanh bằng các phím Mũi tên.