Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะย้ายผืนผ้าใบ Tkinter ด้วย Mouse ได้อย่างไร?


วิดเจ็ต 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()

ผลลัพธ์

การเรียกใช้โค้ดด้านบนจะแสดงหน้าต่างที่มีรูปภาพที่สามารถย้ายข้ามหน้าต่างได้โดยใช้ปุ่มเมาส์

จะย้ายผืนผ้าใบ Tkinter ด้วย Mouse ได้อย่างไร?

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