창 크기가 변경 될 때마다 이전 위젯 (here)에 위젯의 크기를 가져 오는 것에 대한 질문이있었습니다.Tkinter 3.x에서 캔버스/위젯 크기 얻기
링크 된 질문과 답변은 완벽하게 작동하지만, 후속 질문이 있습니다. 슬프게도 내 계정이 매우 새롭기 때문에 슬프게도 의견을 게시 할 수 없습니다!
내 질문은; 내 전체 코드는 다음과 같습니다
event.width
및
event.widget.winfo_width()
: 사이의 효과 차이는 무엇인가.
from tkinter import *
root = Tk()
display = Canvas(root, width=300, height=300, background="bisque")
display.pack(fill="both", expand=True)
display.create_text(10, 15, anchor="w", tags=["events"])
display.create_text(10, 30, anchor="w", tags=["winfos"])
def show_dims(event):
display.itemconfigure("events", text="event.width: {0}, event.height: {1}".format(event.width, event.height))
display.itemconfigure("winfos", text="winfo_width: {0}, winfo_height: {1}".format(event.widget.winfo_width(), event.widget.winfo_height()))
display.bind("<Configure>", show_dims)
root.mainloop()
내가 알 수있는 한, 코드는 완벽하게 작동합니다. 창 크기가 변경되면 "< Configure>"이벤트는 show_dims 함수를 호출합니다.이 함수는 표시된 텍스트를 업데이트하여 픽셀의 현재 폭과 높이를 픽셀로 표시합니다.
창 크기를 동일하게 만드는 두 가지 방법이 있습니까? 어떤 이유로 든 더 낫지 않습니까?
감사합니다,
안녕하세요, Rassar, 답장을 보내 주셔서 감사합니다. 그래서 내가 제대로 이해하는 경우 : 이벤트가 다른 것 인 경우 바인딩되는 이벤트는 'Configure' 또는'Expose'이 만, 다음 중 하나를 사용할 수 있습니다 (그러나'event.width' 더 읽을 수) 경우 ,'winfo'가 사용되어야합니다. 대체로 보편적으로 사용할 수있는 방법과 다른 점을 제공하지 않는 특정 경우에만 사용할 수있는 방법을 사용하는 것이 약간 중복 된 것처럼 보입니다. 나는 이것을 이해하려고 더 멀리 문서를 읽을 것이다. 감사합니다. Will –
@WilliamPulford : _ "특정 경우에만 사용할 수있는 방법을 사용하는 것이 약간의 번거 로움"_ _'event.width'는 메소드가 아니며 속성입니다 개체에. –