[python_gui] frame 예쁘게 조정하기
오늘도 나도코딩 님의 "파이썬 무료 강의 (활용편2) - GUI 프로그래밍"을 따라하며 gui공부를 하고있습니다.
제가 gui로 알람을 만들겠다고 생각하면서 제일 처음 생각했던 것은
'내가 원하는 대로 프레임 간의 간격을 어떻게 조정할 수 있지?' 였습니다.
그당시 저는 여러 위젯들을 아래로 쭉 쌓는 것밖에 할 줄 몰랐어요.
제가 위젯들을 만들면 다 화면 중앙에 세로로 쭉 하고 배열되더라구요ㅎㅎ
그래서 모든 위젯들의 가로 세로를 일정한 간격으로 배열할 수 있는 방법에 대해 제일 궁금했습니다. ㅎㅎ(가장쓸모없는 것이 아닐까...ㅠㅠ)
다시 본론으로 돌아가서
아래 그림은 여러 frame을 만들고 각 frame에 위젯을 각각 넣어 배열한 상태입니다.
총 6개의 frame이 들어갔는데 각 frame 사이 간격이 너무 좁아서 안 예쁘네요
frame.pack(padx=5, pady=5)
6개의 프레임에 padx=5, pady=5 를 넣어서 간격을 줘볼게요.
frame_file = Frame(root)
frame_file.pack(fill="x", padx= 5, pady= 5)
btn_addfile = Button(frame_file, padx= 5, pady= 5, width = 12, text= "파일추가")
btn_addfile.pack(side="left")
btn_addfile = Button(frame_file, padx= 5, pady= 5, width = 12,text= "파일추가")
btn_addfile.pack(side="right")
앞에보다 프레임 사이에 간격이 생겨서 훨씬 보기가 좋네요
음 그런데 프레임과 위젯 사이 간격이 너무 좁아보이네요 이부분도 수정해 보겠습니다.
위젯.pack(padx=5, pady=5)
각각의 위젯에 padx=5, pady=5 를 넣어서 간격을 줍니다.
# 저장경로 프레임 만들기
frame_path = LabelFrame(root, text="저장경로")
frame_path.pack(fill="x", padx= 5, pady= 5)
txt_path = Entry(frame_path)
txt_path.pack(side= "left",fill= "x", expand= True, ipady= 4, padx= 5, pady= 5)
btn_search = Button(frame_path, width=10, text="찾아보기")
btn_search.pack(side= "right", padx= 5, pady= 5)
entry, button위젯에 padx=5, pady=5 를 추가해준 것을 확인할 수 있습니다.
'저장경로'와 '옵션'의 레이블프레임에서 위젯과 프레임 간의 간격은 그래도 좁아보입니다.
위에서 보셨던 코드에 ipady=5 를 추가하여
frame_path.pack(fill= "x", padx= 5, pady=5, ipady= 5)
frame_option.pack(padx=5, pady=5, ipady= 5) 로 해주면
저장경로 프레임의 높이가 길어진 것을 확인하실 수 있습니다.
# 저장경로 프레임
frame_path = LabelFrame(root, text="저장경로")
frame_path.pack(fill="x", padx= 5, pady= 5, ipady=5)
txt_path = Entry(frame_path)
txt_path.pack(side= "left",fill= "x", expand= True, ipady= 4, padx= 5, pady= 5)
btn_search = Button(frame_path, width=10, text="찾아보기")
btn_search.pack(side= "right", padx= 5, pady= 5)
# 옵션 프레임
frame_option = LabelFrame(root, text="옵션")
frame_option.pack(padx= 5, pady= 5, ipady=5)
이로써 제가 궁금해했던 예쁘게 레이아웃을 만드는 방법에 대해 배워보았습니다.
나도코딩님의 프로젝트를 마친 후 얼른 알람을 만들어보며 더 배워보아야겠습니다!