วิดเจ็ต 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()
ผลลัพธ์
การเรียกใช้โค้ดด้านบนจะแสดงหน้าต่างที่มีรูปภาพที่สามารถย้ายข้ามหน้าต่างได้โดยใช้ปุ่มเมาส์
ตอนนี้ ให้คลิกบนผ้าใบแล้วลากวัตถุไปรอบๆ ด้วยเมาส์