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

วิธีการวาดจุดบนผืนผ้าใบบนเหตุการณ์การคลิกใน Tkinter Python?


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

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

  • สร้างวิดเจ็ตผ้าใบและแพ็คเพื่อแสดงในหน้าต่าง

  • กำหนดฟังก์ชัน draw_dot() ที่ทำงานเป็นเหตุการณ์เมื่อผู้ใช้ทำเหตุการณ์การคลิก

  • สร้างตัวแปรร่วมที่นับจำนวนคลิกในพื้นที่ทำงาน

  • หากการนับกลายเป็นสอง ให้ลากเส้นระหว่างพิกัดที่หนึ่งและที่สอง

  • ผูกปุ่มเมาส์ด้วยฟังก์ชันเรียกกลับเพื่อควบคุมฟังก์ชันได้อย่างเต็มที่

ตัวอย่าง

# 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('<Button-1>', draw_line)
click_num=0

win.mainloop()

ผลลัพธ์

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

วิธีการวาดจุดบนผืนผ้าใบบนเหตุการณ์การคลิกใน Tkinter Python?