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

วิธีเคลื่อนย้าย Tkinter Canvas ด้วยเมาส์


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()

ผลลัพธ์

การรันโค้ดจะแสดงหน้าต่างที่มีภาพสามารถเคลื่อนย้ายข้ามหน้าต่างด้วยปุ่มเมาส์

วิธีเคลื่อนย้าย Tkinter Canvas ด้วยเมาส์

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