파이썬/파이썬(python) 중급

[29-1 파이썬] tkinter grid 격자 관련 팁, columnspan, rowspan

Olivia-BlackCherry 2022. 9. 17. 23:56

오늘은  grid  관련하여 열과 행을 정하는 방법을 소개하겠다. 

 

설명을 위해 기본 세팅을 하고, 열과 행 위치를 살펴보자.

from tkinter import *
window= Tk()

r = Label(bg="red", width=30, height=10)
r.grid(row=0, column=0)

y= Label(bg="yellow", width=30, height=10)
y.grid(row=1, column=1)

p = Label(bg="purple", width=30, height=10)
p.grid(row=2, column=0)


window.mainloop()

 

 

만약 여기에서 보라색을 아래 두칸을 모두 확장하고 싶다면 어떻게 해야할까?

width를 두 배로 늘려보자.

p = Label(bg="purple", width=60, height=10)

두 배로 늘어나기는 하지만, 내가 원하는 것처럼 배열이 되지는 않는다.

 

 

columnspan

이런 경우 columnspan 파라미터를 쓴다. 

span은 확장하다, 늘리다의 뜻을 갖는다.

column + span이니 가로로 확장한다는 뜻이다.

columnspan=2로 바꾸고,  width도 해당 길이에 맞게 30*2인 60으로 맞춰준다.

p = Label(bg="purple", width=60, height=10)
p.grid(row=2, column=0, columnspan=2)

 

 

 

 

rowspan

g = Label(bg="green", width=30, height=20)
g.grid(row=3, column=1, rowspan=2)

span은 확장하다, 늘리다의 뜻을 갖는다.

row + span이니 세로로 확장한다는 뜻이다.

rowspan=2로 바꾸고,  height도 해당 길이에 맞게 10*2인 40으로 맞춰준다.

 

 

 

<최종코드>

from tkinter import *
window= Tk()

r = Label(bg="red", width=30, height=10)
r.grid(row=0, column=0)

y= Label(bg="yellow", width=30, height=10)
y.grid(row=1, column=1)

p = Label(bg="purple", width=30, height=10)
p.grid(row=2, column=0)

g = Label(bg="green", width=30, height=20)
g.grid(row=3, column=1, rowspan=2)

window.mainloop()