파이썬 tkinter 스크롤바 질문입니다.

조회수 989회

외국분 유튜브를 보고 창 전체 오른쪽에 스크롤을 배치할 수 있었는데요, 제가 대학교 면접에 가서 어떻게 답변해야 할 지 모르겠어서요. 왜 스크롤바를 생성할 때 프레임을 만들어내는지? 갑자기 캔버스가 왜 등장하는지 궁금해요. 그냥 win창에 바로 생성하지 않는지! 밑에 코드보고 설명해주실 분 있나요?

win = Tk() #Tk클래스의 win이라는 객체 만들기 - 뿌리가 되는 윈도우를 염

win.title("나의 마음을 알아보세요")# 창의 이름 설정하기
win.geometry("1145x900")# 창의 크기 설정하기
win.option_add("*Font","Arial 20")# 폰트 설정하기
win.configure(bg='Light Coral')# 창의 색 설정하기

main_frame = Frame(win) #윈도우 위에 frame 객체 생성 
main_frame.pack(fill=BOTH, expand=1) # 메인 프레임의 크기를 전체로 확장하기

my_canvas =Canvas(main_frame) #캔버스는 그래픽요소를 출력한다 이를 이용해 메인 프레임 띄우기
my_canvas.pack(side=LEFT, fill=BOTH, expand=1) # 크기 조절하기

my_scrollbar = ttk.Scrollbar(main_frame, orient=VERTICAL, command=my_canvas.yview) #메인 프레임에 y방향으로 스크롤바 만들기 
my_scrollbar.pack(side=RIGHT, fill=Y)# 우측으로 스크롤바의 위치를 지정하고, y축으로 모두 채우기

my_canvas.configure(yscrollcommand=my_scrollbar.set) #y방향의 스크롤바에 스크롤바의 기능을 명령하기
my_canvas.bind('<Configure>', lambda e: my_canvas.configure(scrollregion = my_canvas.bbox("all"))) #람다를 사용하여 캔버스 전체를 스크롤하는 함수를 한 줄로 지정하기 

second_frame = Frame(my_canvas) # 캔버스 내부에 두번째 프레임 생성하기
second_frame.configure(bg='yellow')
second_frame.option_add("*Font","Arial 20")#폰트 설정하기

my_canvas.create_window((0,0), window=second_frame, anchor="nw")

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)