파이썬 gui 에서 레이아웃을 지정할 때 grid 를 사용하면 편하다. 위젯의 화면배치가 용이하고 위젯의 위치는 행과 열의 위치만 설정하면 그만이다. 공간이 부족하면 행과 열을 서로 합치기 함으로써 공간을 늘릴 수도 있다. 레이아웃이 복잡해 질 때마다 코드 길이가 길어지는 것은 감수해야 하는 문제가 따른다.
파이썬 tkinter grid 위젯 배치하기
Layout python grid
파이썬 gui 에서 화면배치를 할 때 grid 를 사용하면 편하다.
grid 는 바둑판 또는 엑셀의 셀들을 생각하면 된다.
행과 열을 이용해 위젯들을 배치하고 화면을 구성할 수 있다.
그리고, 행과 열을 합치기하여 보기 편한 레이아웃을 구성할 수 있다.
grid 레이아웃
사용법은 pack 메서드와 비슷하지만 인자값에 행과 열이 들어간다.
행을 지정하는 인자값은 row
열을 지정하는 인자값은 column 이다.
위젯을 추가할 때마다 행과 열을 지정하면서 grid 레이아웃에 추가할 수 있다.
Widget = Widget(Window)
Widget.grid(row=행번호, column=열번호 [, rowspan=합치기 행갯수, columnspan=합치기 열갯수] )
샘플코드
3 X 3 으로 grid 레이아웃을 구성해 본다.
grid 레이아웃을 사용할 때는 보통 3 x 3 으로 구성한다.
라벨을 9개 만들고 grid 에 하나씩 붙여보기로 한다.
#----- import 모듈
import tkinter.messagebox as msgbox
from tkinter import *
from datetime import datetime
#----- 함수
#----- 메인
# 윈도우 창 생성
vWindow = Tk()
vWindow.title('윈도우창 타이틀')
vWindow.geometry('640x320')
vWindow.option_add('*Font', '돋음 20')
vLabel1 = Label(vWindow)
vLabel1.config(text='[ 0 , 0 ]')
vLabel1.grid(row=0, column=0)
vLabel2 = Label(vWindow)
vLabel2.config(text='[ 0 , 1 ]')
vLabel2.grid(row=0, column=1)
vLabel3 = Label(vWindow)
vLabel3.config(text='[ 0 , 2 ]')
vLabel3.grid(row=0, column=2)
vLabel4 = Label(vWindow)
vLabel4.config(text='[ 1 , 0 ]')
vLabel4.grid(row=1, column=0)
vLabel5 = Label(vWindow)
vLabel5.config(text='[ 1 , 1 ]')
vLabel5.grid(row=1, column=1)
vLabel6 = Label(vWindow)
vLabel6.config(text='[ 1 , 2 ]')
vLabel6.grid(row=1, column=2)
vLabel7 = Label(vWindow)
vLabel7.config(text='[ 2 , 0 ]')
vLabel7.grid(row=2, column=0)
vLabel8 = Label(vWindow)
vLabel8.config(text='[ 2 , 1 ]')
vLabel8.grid(row=2, column=1)
vLabel9 = Label(vWindow)
vLabel9.config(text='[ 2 , 2 ]')
vLabel9.grid(row=2, column=2)
# 윈도우 창 실행
vWindow.mainloop()
#----------
노가다가 따로 없다.
주목할 곳은 grid 부분이다.
나머지는 라벨 위젯이나 버튼 위젯을 사용하는 방법과 같다.
결과화면을 보자.
예쁘진 않지만 3 X 3 grid 레이아웃이 보인다.
반응형
'programming > Python' 카테고리의 다른 글
파이썬 tkinter grid 버튼에 이벤트 커맨드 설정 (0) | 2022.01.06 |
---|---|
파이썬 tkinter 그리드 레이아웃 위젯 동적 생성 하기 Dynamically Create Widget in grid layout (0) | 2022.01.04 |
파이썬 tkinter pack 메서드 위젯 배치하기 Layout python widget (0) | 2022.01.02 |
파이썬 tkinter 라벨 위젯의 사용 python label widget (0) | 2022.01.01 |
파이썬 tkinter 입력 위젯 문자열 설정하기 Set python entry widget String (0) | 2021.12.30 |
댓글