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

วิธีวาดจุดบน Canvas เมื่อคลิกเมาส์ใน Tkinter Python

พิจารณากรณีการสร้างแอปพลิเคชัน GUI ที่เมื่อเราคลิกที่หน้าต่างด้วยปุ่มเมาส์ จะจัดเก็บพิกัดและวาดจุด Tkinter มีเหตุการณ์ (events) ที่อนุญาตให้ผู้ใช้ผูกคีย์หรือปุ่มกับฟังก์ชัน

เพื่อวาดจุดเมื่อเกิดเหตุการณ์คลิก สามารถทำตามขั้นตอนทั่วไปดังนี้:

  • สร้างวิดเจ็ต Canvas และ pack เพื่อแสดงในหน้าต่าง
  • กำหนดฟังก์ชัน draw_dot() ที่ทำงานเป็นเหตุการณ์เมื่อผู้ใช้คลิก
  • สร้างตัวแปรглอเบลที่นับจำนวนครั้งที่คลิกใน Canvas
  • ถ้าจำนวนครั้งกลายเป็น 2 ให้วาดเส้นระหว่างพิกัดแรกและพิกัดที่สอง
  • ผูกปุ่มเมาส์กับฟังก์ชัน callback เพื่อควบคุมฟังก์ชันได้เต็มที่

ตัวอย่าง

# Import the required libraries
from tkinter import *
from tkinter import ttk

# Create an instance of tkinter frame or window
win = Tk()

# Set the size of the window
win.geometry("700x350")

# Define a function to draw the line between two points
def draw_line(event):
    x1 = event.x
    y1 = event.y
    x2 = event.x
    y2 = event.y
    # Draw an oval in the given co-ordinates
    canvas.create_oval(x1, y1, x2, y2, fill="black", width=20)

# Create a canvas widget
canvas = Canvas(win, width=700, height=350, background="white")
canvas.grid(row=0, column=0)
canvas.bind('', draw_line)

click_num = 0

win.mainloop()

ผลลัพธ์

รันโค้ดด้านบนเพื่อแสดงหน้าต่าง เมื่อคลิกที่ใดก็ได้ภายใน Canvas จะวาดจุดที่จุดนั้น

วิธีวาดจุดบน Canvas เมื่อคลิกเมาส์ใน Tkinter Python