Widget Canvas ของ Tkinter เป็นหนึ่งใน widget ที่หลากหลาย ใช้สร้างรูปทรง ภาพ และทำแอนิเมชันวัตถุ เราสามารถเคลื่อนย้ายภาพในทิศทางเฉพาะบน Canvas widget ด้วยเมธอด move()
กำหนดภาพและพิกัดเป็นพารามิเตอร์ใน move(Image, x, y) เพื่อเคลื่อนย้ายวัตถุใน Canvas เราประกาศภาพเป็นตัวแปรสากลเพื่อเคลื่อนย้ายหรือเปลี่ยนตำแหน่ง
ขั้นตอนอนุญาตให้ภาพเคลื่อนที่ใน Canvas:
- กำหนด Canvas widget และเพิ่มภาพ
- กำหนดฟังก์ชัน move() ให้ภาพไดนามิกใน Canvas
- Bind ปุ่มเมาส์กับฟังก์ชันที่อนุญาตให้ภาพเคลื่อนที่ใน Canvas
ตัวอย่าง
# 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("", move)
win.mainloop() ผลลัพธ์
การรันโค้ดจะแสดงหน้าต่างที่มีภาพสามารถเคลื่อนย้ายข้ามหน้าต่างด้วยปุ่มเมาส์

คลิกบน Canvas และลากวัตถุรอบๆ ด้วยเมาส์