반응형
파이썬, tkinter의 pack()을 활용한 몇 가지 위젯 배치 예제를 만들어 봅니다.
pack()은 위젯을 상하좌우 방향으로 자동 배치할 때 유용하고, side, fill, expand 옵션 조합에 따라 다양한 배치 패턴을 만들 수 있습니다.
1. 기본 세로 배치 (기본값: side="top")
import tkinter as tk
root = tk.Tk()
tk.Button(root, text="버튼 1").pack()
tk.Button(root, text="버튼 2").pack()
tk.Button(root, text="버튼 3").pack()
root.mainloop()

특징: 위에서부터 차례로 쌓임.
2. 가로 배치 (side="left")
import tkinter as tk
root = tk.Tk()
tk.Button(root, text="왼쪽").pack(side="left")
tk.Button(root, text="가운데").pack(side="left")
tk.Button(root, text="오른쪽").pack(side="left")
root.mainloop()

특징: 왼쪽에서 오른쪽 방향으로 차례대로 쌓임.
3. 상하좌우 혼합 배치
import tkinter as tk
root = tk.Tk()
root.title("pack() 상하좌우 혼합 배치")
root.geometry("300x200")
tk.Button(root, text="위", bg="lightblue").pack(side="top", fill="x")
tk.Button(root, text="왼쪽", bg="lightgreen").pack(side="left", fill="y")
tk.Button(root, text="오른쪽", bg="lightpink").pack(side="right", fill="y")
tk.Button(root, text="아래", bg="lightyellow").pack(side="bottom", fill="x")
root.mainloop()

특징: 위, 왼쪽, 오른쪽, 아래가 감싸고 중앙이 비어 있음.
4. fill과 expand로 공간 채우기
import tkinter as tk
root = tk.Tk()
root.title("pack() fill & expand")
root.geometry("300x200")
tk.Button(root, text="버튼 1", bg="lightblue").pack(fill="x")
tk.Button(root, text="버튼 2", bg="lightgreen").pack(fill="both", expand=True)
tk.Button(root, text="버튼 3", bg="lightpink").pack(fill="x")
root.mainloop()

특징:
- fill="x" : 가로로만 채움
- fill="both", expand=True : 남는 공간을 모두 차지
5. 중첩 Frame과 pack() 조합
import tkinter as tk
root = tk.Tk()
root.title("pack() 중첩 Frame")
root.geometry("300x200")
top_frame = tk.Frame(root, bg="lightgray")
top_frame.pack(fill="x")
bottom_frame = tk.Frame(root, bg="white")
bottom_frame.pack(fill="both", expand=True)
# 상단 프레임 버튼
tk.Button(top_frame, text="위1").pack(side="left", padx=5, pady=5)
tk.Button(top_frame, text="위2").pack(side="left", padx=5, pady=5)
# 하단 프레임 버튼
tk.Button(bottom_frame, text="아래1").pack(side="top", pady=5)
tk.Button(bottom_frame, text="아래2").pack(side="top", pady=5)
root.mainloop()

특징: Frame을 나누어 내부에서 다시 pack()을 적용 → 레이아웃 관리가 훨씬 편리해짐.
반응형
'Python > 파이썬 기초 강의(2024)★' 카테고리의 다른 글
파이썬, pip: 패키지 및 라이브러리를 설치하고 관리하기 (2) | 2024.12.18 |
---|---|
파이썬, 텍스트 파일에 저장하기 읽어오기 (0) | 2024.11.27 |
파이썬, 표준 모듈 목록, 모듈 내의 함수 목록 알아보기 (0) | 2024.11.26 |
파이썬, 클래스 생성자 오보로딩 상속 class __init__ self (0) | 2024.11.25 |
파이썬, 터틀그래픽 사각형 그리기 모듈 (0) | 2024.11.24 |