반응형
Python tkinter pack 이란? (What is tkinter pack?)
grid가 엑셀처럼 행과 열로 위치를 배치했다면(https://scribblinganything.tistory.com/293), pack은 말 그대로 공간에 채워넣는 방법으로 배치하는 것이다. 아래 예제들을 통해 쉽게 이해 해보자
tkinter pack으로 배치하기
코드>>
from tkinter import *
app = Tk()
btn_0 = Button(app, text="top0")
btn_0.pack(side="top")
btn_1 = Button(app, text="top1")
btn_1.pack(side="top")
btn_2 = Button(app, text="left0")
btn_2.pack(side="left")
btn_3 = Button(app, text="left1")
btn_3.pack(side="left")
app.title('scribblinganything.tistory.com')
app.geometry("300x300")
app.mainloop()
결과>>
주석>>
pack 은 side 옵션을 사용해서 위치를 지정할 수 있다. side 값은 아래와 같다.
- top
- left
- right
- bottom
단순히 side만 사용해서 배치하면 위 결과처럼 애매한 위치로 배정된다. 이를 해결하기 위해 label을 사용한다.
label과 pack을 이용하여 배치하기
코드>>
from tkinter import *
app = Tk()
label0 = Label(app, width=50, height=5)
label0.pack()
btn_0 = Button(label0, text="top0")
btn_0.pack(side="top")
btn_1 = Button(label0, text="top1")
btn_1.pack(side="top")
label1 = Label(app, width=50, height=5)
label1.pack()
btn_2 = Button(label1, text="left0")
btn_2.pack(side="left")
btn_3 = Button(label1, text="left1")
btn_3.pack(side="left")
app.title('scribblinganything.tistory.com')
app.geometry("300x300")
app.mainloop()
결과>>
주석>>
label이 존재하기 때문에 top과 left 배치가 쉬워 졌다.
tkinter pack option 사용하기
option의 종류와 기능은 아래와 같다.
- padx : x방향 외부 패딩
- pady : y방향 외부 패딩
- ipadx : x방향 내부 패딩
- ipadx : y방향 내부 패딩
- fill : 공간 채우기 (x, y, both)
- anchor : 공간 내에 위치 채우기
코드>>
from tkinter import *
app = Tk()
label0 = Label(app)
label0.pack()
btn_0 = Button(label0, text="top0")
btn_0.pack(side="top")
label1 = Label(app)
label1.pack(fill="both")
btn_2 = Button(label1, text="left0")
btn_2.pack(side="left")
btn_3 = Button(label1, text="left1")
btn_3.pack(side="left")
btn_4 = Button(label1, text="left2")
btn_4.pack(side="left")
btn_5 = Button(label1, text="left3")
btn_5.pack(side="left")
btn_6 = Button(label1, text="left4")
btn_6.pack(side="left")
app.title('scribblinganything.tistory.com')
app.geometry("300x300")
app.mainloop()
결과>>
주석>>
fill로 채웠기 때문에 window 크기에 상관없이 라벨이 꽉채워 주기 때문에 윈도우 사이즈를 변경해도 left와 top의 위치가 따라 간다.
반응형
'파이썬(Python) > tkinter' 카테고리의 다른 글
[Python]tkinter 그리드 빈 칸 만들기(Grid, Space, Blank) (0) | 2021.12.14 |
---|---|
Python tkinter - Scrollbar 예제와 사용방법 (0) | 2021.10.10 |
파이썬 tkinter - grid란? (간격, 배치, 정렬 방법) 예제로 쉽게 이해하기 (0) | 2021.09.17 |
파이썬 tkinter 변수값 가져오기(StringVar, IntVar, DoubleVar, BooleanVar) - 예제로 이해하기 (0) | 2021.09.12 |
(Python, tkinter) jpg, png, jpeg 이미지 파일 업로드 하기 (1) | 2021.09.09 |