พิจารณากรณีการสร้างแอปพลิเคชัน 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 จะวาดจุดที่จุดนั้น
