[python] Tkinter 그리드 레이아웃
Tkinter는 Python에서 GUI 프로그래밍을 위해 사용되는 표준 라이브러리입니다. Tkinter를 사용하여 다양한 위젯을 배치하기 위해 그리드 레이아웃을 활용할 수 있습니다. 그리드 레이아웃은 테이블 형태로 위젯을 배치하는 방법으로, 행(row)과 열(column)의 개념을 사용합니다.
그리드 레이아웃 구성 요소
Tkinter에서 그리드 레이아웃을 사용하기 위해 다음과 같은 구성 요소를 알아야 합니다.
- Grid: 위젯을 그리드 레이아웃에 배치하기 위해 사용되는 메서드입니다.
grid(row, column)
형태로 호출할 수 있습니다. - Row: 위젯의 행 위치를 지정하는 값입니다. 0부터 시작하여 순차적으로 증가합니다.
- Column: 위젯의 열 위치를 지정하는 값입니다. 0부터 시작하여 순차적으로 증가합니다.
- Padx: 위젯의 가로 여백을 지정하는 값입니다.
- Pady: 위젯의 세로 여백을 지정하는 값입니다.
- Sticky: 위젯이 그리드 셀 내에서 어떻게 정렬될지를 지정하는 값입니다.
N
,S
,E
,W
와 조합하여 사용할 수 있습니다.
예제 코드
다음은 Tkinter를 사용하여 그리드 레이아웃을 구성하는 예제 코드입니다.
import tkinter as tk
window = tk.Tk()
# 레이블 위젯 생성
label1 = tk.Label(window, text="Label 1")
label2 = tk.Label(window, text="Label 2")
label3 = tk.Label(window, text="Label 3")
# 레이블 위젯을 그리드에 배치
label1.grid(row=0, column=0, padx=10, pady=10, sticky="w")
label2.grid(row=0, column=1, padx=10, pady=10, sticky="e")
label3.grid(row=1, column=0, columnspan=2, padx=10, pady=10)
window.mainloop()
위 코드에서는 Tk()
함수를 사용하여 윈도우를 생성하고, Label()
함수를 사용하여 레이블 위젯을 생성합니다. 그리고 grid()
메서드를 사용하여 레이블 위젯을 그리드에 배치합니다. row
와 column
매개변수를 사용하여 행과 열 위치를 지정하고, padx
와 pady
매개변수를 사용하여 가로와 세로 여백을 지정합니다. 또한 sticky
매개변수를 사용하여 위젯의 정렬 방식을 지정할 수 있습니다.