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.
Bây giờ, hãy nhấp vào Canvas và dùng chuột kéo đối tượng xung quanh.