이것이 아마도 가장 간단한 질문 일 것입니다. 그러나 저는 Tkinter를 배우기 시작했습니다. GUI에서 마우스 클릭이 발생했을 때 이벤트를 다시 참조하는 방법을 모르겠습니다.Tkinter를 사용하여 파이썬 캔버스에서 페인트 이벤트를 다시 참조하는 방법은 무엇입니까?
캔버스를 클릭하면 몇 가지 점을 그려보고 싶습니다. 페인트 함수에서 canvas 변수를 다시 참조 할 수 없습니다.
코드의이 작품은 내가 말한다 페인트 기능에 오류가 예제를 시도 할 때마다 SO
여기에 질문을 기반으로
NameError: name 'canvas' is not defined;
def main():
master = Tk()
# Right side of the screen/img holder
right_frame = Frame(master, width=500, height=500, cursor="dot")
right_frame.pack(side=LEFT)
# Retrieve image
image = Image.open("./image/demo.JPG")
image = image.resize((800, 700), Image.ANTIALIAS)
photo = ImageTk.PhotoImage(image)
# Create canvas
canvas = Canvas(right_frame, width=800, height=700)
canvas.create_image(0, 0, image=photo, anchor="nw")
canvas.pack()
canvas.bind("<B1-Motion>", paint)
message = Label(right_frame, text="Press the mouse to draw")
message.pack(side=BOTTOM)
mainloop()
def paint(event):
python_green = "#476042"
x1, y1 = (event.x - 1), (event.y - 1)
x2, y2 = (event.x + 1), (event.y + 1)
canvas.create_oval(x1, y1, x2, y2, fill=python_green)
if __name__ == "__main__":
main()
팬더 태그를 볼 수 없으므로 관련성이 높은 태그로 교체하십시오. –
Ups 감사합니다. 질문을 제출했을 때 선택되지 않았 음을 나타냅니다. –