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 이다.
옵션은 문자열이기 때문에 동적으로 처리하는 것 또한 수월할 것이다.
결과화면을 보자.
옵션를 준 것으로 상하좌우로 위젯들이 배치된 것을 볼 수 있다.
하지만, 뭔가 아쉽다.
'programming > Python' 카테고리의 다른 글
파이썬 tkinter 그리드 레이아웃 위젯 동적 생성 하기 Dynamically Create Widget in grid layout (0) | 2022.01.04 |
---|---|
파이썬 tkinter grid 위젯 배치하기 Layout python grid (0) | 2022.01.03 |
파이썬 tkinter 라벨 위젯의 사용 python label widget (0) | 2022.01.01 |
파이썬 tkinter 입력 위젯 문자열 설정하기 Set python entry widget String (0) | 2021.12.30 |
파이썬 tkinter 입력 위젯 사용하기 python entry widget (0) | 2021.12.29 |
댓글