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

ตอนนี้ ให้คลิกบนผ้าใบแล้วลากวัตถุไปรอบๆ ด้วยเมาส์