상위 목록: 하위 목록: 작성 날짜: 읽는 데 2 분 소요

LabelFrame(라벨 프레임)

LabelFrame을 이용하여 다른 위젯들을 포함하고 캡션이 있는 라벨 프레임을 생성할 수 있습니다.



LabelFrame 사용

import tkinter

window=tkinter.Tk()
window.title("YUN DAE HEE")
window.geometry("640x400+100+100")
window.resizable(True, True)

def check():
    label.config(text=RadioVariety_1.get())
    
labelframe=tkinter.LabelFrame(window, text="플랫폼 선택")
labelframe.pack()

RadioVariety_1=tkinter.StringVar()
RadioVariety_1.set("미선택")

radio1=tkinter.Radiobutton(labelframe, text="Python", value="가능", variable=RadioVariety_1, command=check)
radio1.pack()
radio2=tkinter.Radiobutton(labelframe, text="C/C++", value="부분 가능", variable=RadioVariety_1, command=check)
radio2.pack()
radio3=tkinter.Radiobutton(labelframe, text="JSON", value="불가능", variable=RadioVariety_1, command=check)
radio3.pack()
label=tkinter.Label(labelframe, text="None")
label.pack()

window.mainloop()


def check():
    label.config(text=RadioVariety_1.get())
    
labelframe=tkinter.LabelFrame(window, text="플랫폼 선택")
labelframe.pack()

RadioVariety_1=tkinter.StringVar()
RadioVariety_1.set("미선택")

radio1=tkinter.Radiobutton(labelframe, text="Python", value="가능", variable=RadioVariety_1, command=check)
radio1.pack()
radio2=tkinter.Radiobutton(labelframe, text="C/C++", value="부분 가능", variable=RadioVariety_1, command=check)
radio2.pack()
radio3=tkinter.Radiobutton(labelframe, text="JSON", value="불가능", variable=RadioVariety_1, command=check)
radio3.pack()
label=tkinter.Label(labelframe, text="None")
label.pack()

tkinter.LabelFrame(윈도우 창, 매개변수1, 매개변수2, 매개변수3, ...)을 사용하여 해당 윈도우 창에 표시할 라벨 프레임의 속성을 설정할 수 있습니다.

매개변수를 사용하여 라벨 프레임의 속성을 설정합니다.

라벨 프레임은 Frame과 동일하게 동작하며, 테두리 위에 text로 설정한 캡션(제목)이 함께 표시됩니다.

라벨 프레임 안에 위젯이 포함되어 있지 않을 경우, 표시되지 않습니다.

  • Tip : 라벨 프레임 안의 위젯은 tkinter.Radiobutton(labelframe, ...)처럼 첫 번째 매개변수에 라벨 프레임을 전달하여 포함시킵니다. 자세한 내용은 13강 바로가기에서 확인할 수 있습니다.

  • Tip : labelwidget에 Label이나 Checkbutton 등의 위젯을 전달하면, 문자열 대신 해당 위젯이 캡션 위치에 표시됩니다. 이 경우 text는 무시됩니다.

  • Tip : tkinter.ttk.LabelFrame도 동일한 용도로 사용할 수 있으며, text, labelanchor, labelwidget, padding 등의 매개변수를 지원합니다.



LabelFrame Parameter

라벨 프레임 텍스트 설정

이름 의미 기본값 속성
text 라벨 프레임에 표시할 문자열 - -
labelwidget 라벨 프레임에 표시할 위젯 - -
labelanchor 라벨 프레임의 문자열 위치 설정 nw nw, n, ne, en, e, es, se, s, sw, ws, w, wn


라벨 프레임 형태 설정

이름 의미 기본값 속성
width 라벨 프레임의 너비 0 상수
height 라벨 프레임의 높이 0 상수
relief 라벨 프레임의 테두리 모양 groove flat, groove, raised, ridge, solid, sunken
borderwidth=bd 라벨 프레임의 테두리 두께 2 상수
background=bg 라벨 프레임의 배경 색상 SystemButtonFace color
foreground=fg 라벨 프레임의 문자열 색상 SystemButtonText color
padx 라벨 프레임의 테두리와 내용의 가로 여백 0 상수
pady 라벨 프레임의 테두리와 내용의 세로 여백 0 상수


라벨 프레임 형식 설정

이름 의미 기본값 속성
font 라벨 프레임의 문자열 글꼴 설정 TkDefaultFont font
cursor 라벨 프레임의 마우스 커서 모양 - 커서 속성
class_ 클래스 설정 - -
visual 시각적 정보 설정 - -
colormap  256 색상을 지정하는 색상 맵 설정 - new


라벨 프레임 하이라이트 설정

이름 의미 기본값 속성
highlightcolor 라벨 프레임이 선택되었을 때 색상 SystemWindowFrame color
highlightbackground 라벨 프레임이 선택되지 않았을 때 색상 SystemButtonFace color
highlightthickness 라벨 프레임이 선택되었을 때 두께 (두께 설정) 0 상수


라벨 프레임 동작 설정

이름 의미 기본값 속성
takefocus Tab 키를 이용하여 위젯 이동 허용 여부 False Boolean
container  응용 프로그램이 포함될 컨테이너로 사용 False Boolean


참고

  • 내부에 위젯이 존재할 경우, width와 height 설정을 무시하고 크기 자동 조절

  • cursor 매개변수

    • arrow, based_arrow_down, based_arrow_up, boat, bogosity, bottom_left_corner, bottom_right_corner, bottom_side, bottom_tee, box_spiral, center_ptr, circle, clock, coffee_mug, cross, cross_reverse, crosshair, diamond_cross, dot, dotbox, double_arrow, draft_large, draft_small, draped_box, exchange, fleur, gobbler, gumby, hand1, hand2, heart, icon, iron_cross, left_ptr, left_side, left_tee, leftbutton, ll_angle, lr_angle, man, middlebutton, mouse, pencil, pirate, plus, question_arrow, right_ptr, right_side, right_tee, rightbutton, rtl_logo, sailboat, sb_down_arrow, sb_h_double_arrow, sb_left_arrow, sb_right_arrow, sb_up_arrow, sb_v_double_arrow, shuttle, sizing, spider, spraycan, star, target, tcross, top_left_arrow, top_left_corner, top_right_corner, top_side, top_tee, trek, ul_angle, umbrella, ur_angle, watch, wait, xterm, X_cursor

  • highlightbackground를 설정하였을 경우, 라벨 프레임이 선택되지 않았을 때에도 두께가 표시됨

  • container를 True로 설정하였을 경우, 라벨 프레임의 내부에 위젯이 포함되어 있지 않아야 함

  • labelanchor는 두 글자로 설정할 경우 첫 글자가 변, 두 번째 글자가 변 안에서의 위치를 의미함 예) en = 동쪽(오른쪽) 변의 북쪽(위쪽)

댓글 남기기