label — 텍스트·이미지 표시용 라벨 위젯

label — 텍스트·이미지 표시용 라벨 위젯

화면에 어떤 문구나 이미지를 단순히 보여주고 싶을 때, 버튼처럼 상호작용이 필요한 건 아니잖아요. Tk의 label 명령은 텍스트 문자열, 비트맵, 이미지를 표시하는 비상호작용 위젯을 만듭니다.

출처: label (Tcl/Tk 8.6.18 매뉴얼)

본문

개요

label pathName ?options?

label 명령은 pathName 인자로 주어진 새 창을 만들고 label 위젯으로 만듭니다. 색, 글꼴, 텍스트, 초기 relief 같은 라벨의 측면을 구성하는 옵션을 명령줄이나 옵션 데이터베이스로 지정할 수 있어요. label 명령은 pathName 인자를 돌려줍니다. 이 명령을 호출할 때 pathName이라는 창이 존재해서는 안 되지만, pathName의 부모는 존재해야 해요.

label은 텍스트 문자열, 비트맵, 또는 이미지를 표시하는 위젯입니다. 텍스트를 표시할 때는 모두 한 가지 글꼴이어야 하지만, 화면에서 여러 줄을 차지할 수 있어요(새줄 문자가 있거나 -wraplength 옵션 때문에 줄바꿈이 일어나는 경우). 그리고 -underline 옵션으로 문자 하나에 선택적으로 밑줄을 그을 수 있어요. 아래 설명하는 명령으로 relief나 텍스트를 바꾸는 등 라벨을 몇 가지 간단한 방식으로 조작할 수 있습니다.

표준 옵션

-activebackground, -activeforeground, -anchor, -background 또는 -bg, -bitmap, -borderwidth 또는 -bd, -compound, -cursor, -disabledforeground, -font, -foreground 또는 -fg, -highlightbackground, -highlightcolor, -highlightthickness, -image, -justify, -padx, -pady, -relief, -takefocus, -text, -textvariable, -underline, -wraplength 옵션이 표준 옵션으로 제공됩니다.

위젯 전용 옵션

-height (데이터베이스 이름 height, 클래스 Height) — 라벨의 원하는 높이를 지정합니다. 라벨에 이미지나 비트맵이 표시 중이면 값은 화면 단위(Tk_GetPixels이 받아들이는 형태)이고, 텍스트라면 텍스트 줄 수로 나타냅니다. 이 옵션을 지정하지 않으면 라벨의 원하는 높이는 표시 중인 이미지·비트맵·텍스트의 크기로 계산됩니다.

-state (데이터베이스 이름 state, 클래스 State) — 라벨의 세 가지 상태 normal, active, disabled 중 하나를 지정합니다. normal 상태에서는 -foreground-background 옵션으로 표시되고, active 상태에서는 -activeforeground-activebackground 옵션으로 표시돼요. disabled 상태에서는 -disabledforeground-background 옵션이 표시 방식을 결정합니다.

-width (데이터베이스 이름 width, 클래스 Width) — 라벨의 원하는 너비를 지정합니다. 이미지나 비트맵이 표시 중이면 값은 화면 단위이고, 텍스트라면 문자 수입니다. 지정하지 않으면 표시 중인 내용의 크기로 계산돼요.

위젯 명령

label 명령은 이름이 pathName인 새 Tcl 명령을 만듭니다. 이 명령으로 위젯에 여러 작업을 호출할 수 있어요. 일반적인 형태는 다음과 같습니다.

pathName option ?arg arg ...?

label 위젯에서 사용 가능한 명령은 다음과 같아요.

pathName cget optionoption으로 주어진 설정 옵션의 현재 값을 돌려줍니다.

pathName configure ?option? ?value option value ...? — 위젯의 설정 옵션을 조회하거나 수정합니다. option을 지정하지 않으면 pathName에 사용 가능한 모든 옵션을 설명하는 리스트를 돌려줘요(형식은 Tk_ConfigureInfo 참조). option만 지정하면 그 옵션 하나를 설명하는 리스트를 돌려줍니다. option-value 쌍을 지정하면 해당 옵션을 주어진 값으로 수정하고 빈 문자열을 돌려줘요.

바인딩

새 label을 만들면 기본 이벤트 바인딩은 없어요. label은 상호작용을 목적으로 하지 않기 때문이에요.

예제

# 위젯 만들기
label .t -text "This widget is at the top"    -bg red
label .b -text "This widget is at the bottom" -bg green
label .l -text "Left\nHand\nSide"
label .r -text "Right\nHand\nSide"
text .mid
	.mid insert end "This layout is like Java's BorderLayout"
# 배치하기
pack .t   -side top    -fill x
pack .b   -side bottom -fill x
pack .l   -side left   -fill y
pack .r   -side right  -fill y
pack .mid -expand 1    -fill both

더 알아보기

  • labelframe — 라벨이 붙은 프레임 컨테이너
  • button — 클릭 가능한 버튼 위젯
  • ttk::label — 테마 기반 라벨 위젯