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

การวาดเส้นระหว่างสองครั้งที่คลิกเมาส์ด้วย tkinter

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

เพื่อวาดเส้นระหว่างสองจุด สามารถทำตามขั้นตอนทั่วไปดังนี้:

  • สร้างวิดเจ็ต Canvas และ pack เพื่อแสดงในหน้าต่าง
  • กำหนดฟังก์ชัน draw_line() ที่ทำงานเป็นเหตุการณ์เมื่อผู้ใช้คลิก
  • สร้างตัวแปร global ที่นับจำนวนครั้งที่คลิกใน 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):
    global click_num
    global x1, y1
    if click_num == 0:
        x1 = event.x
        y1 = event.y
        click_num = 1
    else:
        x2 = event.x
        y2 = event.y
        # Draw the line in the given co-ordinates
        canvas.create_line(x1, y1, x2, y2, fill="green", width=10)

# 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