상위 목록: 하위 목록: 작성 날짜: 읽는 데 1 분 소요

pack(상대 위치 배치)

pack을 이용하여 위젯들을 배치할 수 있습니다.



pack 사용

import tkinter

window=tkinter.Tk()
window.title("YUN DAE HEE")
window.geometry("640x400+100+100")
window.resizable(False, False)

b1=tkinter.Button(window, text="top")
b1_1=tkinter.Button(window, text="top-1")

b2=tkinter.Button(window, text="bottom")
b2_1=tkinter.Button(window, text="bottom-1")

b3=tkinter.Button(window, text="left")
b3_1=tkinter.Button(window, text="left-1")

b4=tkinter.Button(window, text="right")
b4_1=tkinter.Button(window, text="right-1")

b5=tkinter.Button(window, text="center", bg="red")

b1.pack(side="top")
b1_1.pack(side="top", fill="x")

b2.pack(side="bottom")
b2_1.pack(side="bottom", anchor="e")

b3.pack(side="left")
b3_1.pack(side="left", fill="y")

b4.pack(side="right")
b4_1.pack(side="right", anchor="s")

b5.pack(expand=True, fill="both")

window.mainloop()


b1.pack(side="top")
b1_1.pack(side="top", fill="x")

b2.pack(side="bottom")
b2_1.pack(side="bottom", anchor="e")

b3.pack(side="left")
b3_1.pack(side="left", fill="y")

b4.pack(side="right")
b4_1.pack(side="right", anchor="s")

b5.pack(expand=True, fill="both")

위젯이름.pack(매개변수1, 매개변수2, 매개변수3, ...)을 사용하여 해당 윈도우 창에 표시할 위젯의 배치 속성을 설정할 수 있습니다.

배치되는 우선 순위는 가장 처음 선언한 pack부터 배치됩니다.

pack의 매개변수로 인하여 위젯의 크기가 변경될 수 있습니다.

pack()은 grid()와 같이 사용될 수 없으며, place()와는 같이 사용할 수 있습니다.



pack Parameter

이름 의미 기본값 속성
side 특정 위치로 공간 할당 top top, bottom, left, right
anchor 할당된 공간 내에서 위치 지정 center center, n, e, s, w, ne, nw, se, sw
fill 할당된 공간에 대한 크기 맞춤 none none, x, y, both
expand 미사용 공간 확보 False Boolean
ipadx 위젯에 대한 x 방향 내부 패딩 0 상수
ipady 위젯에 대한 y 방향 내부 패딩 0 상수
padx 위젯에 대한 x 방향 외부 패딩 0 상수
pady 위젯에 대한 y 방향 외부 패딩 0 상수


  • side : 해당 구역으로 위젯을 이동시킵니다.

  • anchor : 현재 배치된 구역 안에서 특정 위치로 이동시킵니다.

  • fill : 할당된 공간에 맞게 크기가 변경됩니다.

  • expand : 할당되지 않은 미사용 공간을 모두 현재 위젯의 할당된 공간으로 변경합니다.

  • Tip : expand=True만 설정하면 위젯은 할당된 공간의 가운데에 원래 크기로 놓이며, 공간을 가득 채우려면 fill="both"를 함께 설정해야 합니다.

  • Tip : 같은 side로 배치된 위젯은 선언한 순서대로 쌓이며, pack_forget()으로 화면에서 제거하고 다시 pack()으로 표시할 수 있습니다.

  • Tip : 같은 부모 안에서 pack()과 grid()를 함께 사용하면 TclError가 발생합니다. 두 방식을 섞으려면 Frame으로 영역을 나눈 뒤, 프레임마다 한 가지 방식만 사용합니다.

  • grid 사용하기 : 11강 바로가기

  • place 사용하기 : 12강 바로가기

댓글 남기기