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

Tkinter에서 입력 상자(Entry)의 높이에 맞춰 크기 조정하기

Tkinter 애플리케이션에서 Entry 위젯은 한 줄짜리 사용자 입력을 받는 데 사용됩니다. Entry 위젯의 크기는 width 속성을 통해 너비를 자유롭게 설정할 수 있습니다. 하지만 Tkinter에는 Entry 위젯의 높이를 지정하는 height 속성이 따로 존재하지 않습니다.

그렇다면 높이는 어떻게 조절할 수 있을까요? 해결책은 바로 font('폰트 이름', 폰트 크기) 속성입니다. Entry 위젯 내 텍스트의 폰트 크기가 곧 위젯의 높이를 결정하기 때문에, 폰트 크기를 키우면 입력 상자의 높이도 함께 커지게 됩니다.

예제로 이해하기

아래 예제를 통해 개념을 더 명확하게 살펴보겠습니다. 다음 단계를 순서대로 따라 해 보세요.

  • 필요한 라이브러리를 임포트합니다.
  • Entry 위젯을 생성하고, font('폰트 이름', 폰트 크기) 속성으로 너비와 높이를 설정합니다.
  • Label 위젯을 활용해 사용자가 입력한 이름을 출력하는 버튼을 만듭니다.
  • 사용자 이름을 화면에 표시할 Label을 생성하는 함수를 정의합니다.
  • get() 함수를 사용하여 Entry 위젯에 입력된 문자열을 반환받습니다.

코드 작성

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

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

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

# 함수 정의
def myClick():
    greet = "Hello " + name.get()
    label = Label(win, text=greet, font=('Arial', 12))
    label.pack(pady=10)

# Entry 위젯 생성 (너비 50, 폰트 크기 24로 높이 조정)
name = Entry(win, width=50, font=('Arial 24'))
name.pack(padx=10, pady=10)

# 버튼 생성
button = Button(win, text="Submit", command=myClick)
button.pack(pady=10)

win.mainloop()

실행 결과

위 프로그램을 실행하면 사용자에게 이름 입력을 요청하는 Entry 위젯과 이름을 제출하는 버튼이 포함된 창이 나타납니다.

이름 입력란에 원하는 이름을 입력한 후 "Submit" 버튼을 클릭하면, 입력한 이름을 포함한 인사말이 Label 위젯 형태로 화면에 표시되는 것을 확인할 수 있습니다.

핵심은 Entry 위젯에 별도의 height 옵션이 없다는 점입니다. 위 코드처럼 font=('Arial 24')처럼 폰트 크기를 키우면 입력 상자의 세로 크기가 자연스럽게 확대되므로, 디자인에 맞게 높이를 유연하게 조절할 수 있습니다.