Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tkinter Python의 클릭 이벤트에서 캔버스에 점을 그리는 방법은 무엇입니까?

<시간/>

마우스 버튼으로 창을 클릭하면 좌표를 저장하고 점을 그리는 GUI 응용 프로그램을 만드는 경우를 생각해 보십시오. Tkinter는 사용자가 키나 버튼을 기능과 바인딩할 수 있는 이벤트를 제공합니다.

클릭 이벤트에 점을 그리려면 다음과 같은 일반적인 단계를 따르세요. −

  • 캔버스 위젯을 만들고 압축하여 창에 표시합니다.

  • draw_dot() 함수 정의 사용자가 클릭 이벤트를 할 때 이벤트로 작동합니다.

  • 캔버스의 클릭 수를 계산하는 전역 변수를 만듭니다.

  • 개수가 2가 되면 첫 번째 좌표와 두 번째 좌표 사이에 선을 그립니다.

  • 함수를 완전히 제어하려면 마우스 버튼을 콜백 함수와 결합하십시오.

예시

# 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의 클릭 이벤트에서 캔버스에 점을 그리는 방법은 무엇입니까?