Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để vẽ một dấu chấm trên canvas trong một sự kiện nhấp chuột trong Tkinter Python?

Hãy xem xét một trường hợp để tạo một ứng dụng GUI sao cho khi chúng ta nhấp vào cửa sổ bằng nút chuột, nó sẽ lưu trữ các tọa độ và vẽ một dấu chấm. Tkinter cung cấp các sự kiện cho phép người dùng liên kết các phím hoặc nút với các chức năng.

Để vẽ một dấu chấm trên sự kiện nhấp chuột, chúng ta có thể làm theo các bước chung sau -

  • Tạo một tiện ích canvas và đóng gói nó để hiển thị trong cửa sổ.

  • Xác định một hàm draw_dot () hoạt động như một sự kiện khi người dùng thực hiện sự kiện nhấp chuột.

  • Tạo một biến toàn cục tính số lần nhấp trong canvas.

  • Nếu số đếm trở thành hai, thì hãy vẽ một đường thẳng giữa tọa độ thứ nhất và thứ hai.

  • Liên kết nút Chuột với chức năng gọi lại để có toàn quyền kiểm soát chức năng này.

Ví dụ

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

Đầu ra

Chạy đoạn mã trên để hiển thị một cửa sổ. Khi bạn nhấp vào bất kỳ đâu bên trong canvas, nó sẽ vẽ một dấu chấm tại điểm đó.

Làm thế nào để vẽ một dấu chấm trên canvas trong một sự kiện nhấp chuột trong Tkinter Python?