본문 바로가기
programming/Python

파이썬 tkinter pack 메서드 위젯 배치하기 Layout python widget

by 개코 - 개발과 코딩 2022. 1. 2.

tkinter 의 pack 메서드를 이용하면 위젯들을 화면 배치할 수 있다. side 옵션으로 tkinter 에서 제공하는 위젯들을 배치할 수 있다. side 옵션은 4가지 인수로 동작한다. 화면의 상하좌우를 정해 위젯들을 배치할 수 있다. 다만, 자유도가 떨어진다는 점이 단점이다.

파이썬 tkinter 위젯 pack 배치하기
Layout python widget

gui 를 사용해 화면을 구성하면 위젯들의 화면 배치가 순차적으로 붙는다.

pack() 메서드의 경우 tkinter의 위젯을 하나씩 붙을 때마다 가운데 정렬로 세로로 자동으로 배치된다.

pack 메서드에 side 인자값을 설정하면 위젯들을 상하좌우 로 배치할 수 있다.

하지만, 밋밋하다.

그럼에도 기능은 익혀두도록 하자.

사용법

pack 메서드는 tkinter 에서 윈도우창에 위젯을 붙이는 역할을 한다.

pack 메서드의 인자값이 없다면 세로로 순서대로 정렬되는 모습을 볼 수 있다.

하지만 pack 메서드의 인자값인 side 를 설정하면 위의 이미치에 있는 위젯들이 상하좌우로 배치된다.

pack 메서드에 side 옵션을 주는 방법은 아래와 같다.

# 윈도우창의 상단에 위젯을 배치
vLabelTop.pack(side='top');

# 윈도우창의 하단에 위젯을 배치
vLabelBottom.pack(side='bottom')

# 윈도우창의 좌측에 위젯을 배치
vLabelLeft.pack(side='left')

# 윈도우창의 우측에 위젯을 배치
vLabelRight.pack(side='right')

샘플 코드

위에서 언급한 방법대로 파이썬 tkinter 예제코드를 만들어 본다.

라벨을 4개 만들고 윈도우창에 붙인다.

pack 메서드에 각각 side 메서드 옵션을 주고 결과화면을 확인한다.

#----- 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')

vLabelTop = Label(vWindow)
vLabelTop.config(text='Top')
vLabelTop.pack(side='top');

vLabelBottom = Label(vWindow)
vLabelBottom.config(text='Bottom')
vLabelBottom.pack(side='bottom')

vLabelLeft = Label(vWindow)
vLabelLeft.config(text='Left')
vLabelLeft.pack(side='left')

vLabelRight = Label(vWindow)
vLabelRight.config(text='Right')
vLabelRight.pack(side='right')

#----------

코드는 어렵지 않다.

주목할 부분은 pack 메서드의 side 옵션이다.

영어단어도 간단하다. 상=top, 하=bottom, 좌=left, 우=right 이다.

옵션은 문자열이기 때문에 동적으로 처리하는 것 또한 수월할 것이다.

결과화면을 보자.

옵션를 준 것으로 상하좌우로 위젯들이 배치된 것을 볼 수 있다.

하지만, 뭔가 아쉽다.

반응형

댓글