Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter 메시지(Message) 위젯 크기 고정하기 – 자동 리사이즈 방지 방법

Tkinter의 Message(메시지) 위젯은 tkinter 창 안에 텍스트 메시지를 표시할 때 주로 사용됩니다. 이 위젯은 글꼴(font), 배경색·전경색(bg/fg), 테두리 두께(borderwidth), 여백(padding) 등 다양한 속성을 통해 자유롭게 꾸밀 수 있습니다.

그런데 창 크기를 조절할 때 Message 위젯까지 함께 늘어나거나 줄어들어 곤란했던 경험이 있으실 겁니다. 위젯의 크기가 창과 함께 변하는지 여부는 pack 지오메트리 관리자에서 fill=BOTH 옵션을 사용하느냐에 따라 결정됩니다. 아래 예제를 통해 그 동작 방식을 확인해 보겠습니다.

예제 코드

# 필요한 라이브러리 임포트
from tkinter import *

# tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()

# 창 크기 설정
win.geometry("700x350")

# 메시지 박스 생성
msg = Message(win, text="안녕하세요! 잘 지내고 계신가요?")
msg.config(bg='yellow', font=('Calibri', 16), borderwidth=2)
msg.pack(fill=BOTH)

# 메인루프 실행
win.mainloop()

실행 결과

위 코드를 실행하면 다음과 같은 화면이 나타납니다.

Tkinter 메시지(Message) 위젯 크기 고정하기 – 자동 리사이즈 방지 방법

fill=BOTH 옵션이 적용된 상태에서는 창의 크기를 늘릴 때 메시지 박스도 창 폭에 맞춰 자동으로 확장됩니다.

반대로 fill=BOTH 옵션을 제거하고 같은 코드를 실행하면 결과가 달라집니다.

Tkinter 메시지(Message) 위젯 크기 고정하기 – 자동 리사이즈 방지 방법

이 경우에는 창 크기를 어떻게 변경하더라도 메시지 박스의 너비는 초기 크기 그대로 고정되어 유지됩니다.

정리

결론적으로, Message 위젯의 크기 조정을 중단하고 고정된 너비를 유지하려면 pack() 호출 시 fill 옵션을 생략하면 됩니다. 반대로 창 크기에 맞춰 위젯이 함께 늘어나기를 원한다면 fill=BOTH를 지정하면 됩니다. 또한 위젯 생성 시 width 옵션에 값을 직접 지정하면 너비를 더욱 명확하게 고정할 수 있습니다.