Python tkinter Checkbutton ( 체크버튼 )

Python tkinter Checkbutton 위젯에 대해 살펴보겠습니다.

Checkbutton은 여러 옵션들 중 다중 선택하기 위한 체크 버튼 위젯입니다.

 

Checkbutton 만들기

Checkbutton은 tkinter 에 Checkbutton(window) 함수로 생성합니다.

매개변수로 Checkbutton이 출력될 window를 넣어줘야 합니다.

import tkinter
win = tkinter.Tk();

# Checkbutton 생성
chkBtn1 = tkinter.Checkbutton(win, text='1번 Option');
chkBtn2 = tkinter.Checkbutton(win, text='2번 Option');
chkBtn.config(foreground='blue');
chkBtn1.pack();
chkBtn2.pack();

win.mainloop();

옵션은 다른 위젯들 처럼 생성하면서 파라미터로 설성 또는 config() 함수로 설정할 수 있습니다.

 

Checkbutton 이 가장 많이 쓰여지는 예를 보겠습니다.

Checkbutton은 여러옵션들중 선택된 것을 확인해야 하므로 체크 버튼이 선택되었는지 여부를

variable 속성을 통해 변수에 담겠습니다.

import tkinter
win = tkinter.Tk();

# Checkbutton 설정값 저장할 변수
chkVal1 = tkinter.BooleanVar();
chkVal2 = tkinter.IntVar();

# Checkbutton 생성
chkBtn1 = tkinter.Checkbutton(win, text='1번 Option');
chkBtn2 = tkinter.Checkbutton(win, text='2번 Option');

# Checkbutton 에 저장할값 변수들 연결
chkBtn1.config(variable = chkVal1);
chkBtn2.config(variable = chkVal2);

def btnStatus1(event):
    print(chkVal1.get());
def btnStatus2(event):
    print(chkVal2.get());

# Checkbutton 클릭시 이벤트 연결
chkBtn1.bind('<Button-1>', btnStatus1);
chkBtn2.bind('<Button-1>', btnStatus2);

chkBtn1.pack();
chkBtn2.pack();

# chkBtn1 클릭시 체크된상태값에따라 True, False 출력
# chkBtn2 클릭시 체크된상태값에따라 1, 0 출력

win.mainloop();

Checkbutton 에 variable 속성을 통해 상태 값을 연결할 변수를 설정합니다.

해당 변수로 선택되었는지 아닌지 여부를 출력할 수 있습니다.

( 아래쪽 옵션참조 : variable에 들어가는 변수는 필히 tkinter.IntVar() 또는 tkinter.BooleanVar() 여야함 )

해당 함수로 생성된 변수는 container 이기 때문에 get() 함수로 값을 빼내서 출력해야 합니다.

Checkbutton의 값을 가지고 원하는 작업을 할때 참조하면 될 것 같습니다.

 

Checkbutton의 함수들

이름 기능
select() 상태를 체크로 변경
deselect() 상태를 해제로 변경
toggle() 상태 토글 ( 체크이면 >> 해제, 해제이면 >> 체크 )
invoke() 해당 Checkbutton을 클릭한것과 같은 실행
flash() 깜빡임 ( normal 상태 배경과 active 상태 배경 교차 )

 

Checkbutton의 옵션들

1. Checkbutton의 동작 관련

이름 기능 기본값 속성
state Checkbutton의 상태 설정 normal normal, active, disabled
command Checkbutton이 active 상태일 때 실행할 함수   함수
variable Checkbutton의 상태를 저장할 변수   tkinter.IntVar()
tkinter.BooleanVar()
takefocus Tab키로 위젯 이동 허용여부 True Boolean
onvalue Checkbutton이 선택된 상태일때 연결된 변수의 값
( variable로 설정된 변수 )
True Boolean
offvalue Checkbutton이 해제된 상태일때 연결된 변수의 값
( variable로 설정된 변수 )
False Boolean
indicatoron Checkbutton의 위젯 일치화 여부 True Boolean

 

2. Checkbutton의 문자열 관련

이름 기능 기본값 속성
text Checkbutton에 출력할 문자열    
textvariable Checkbutton에 출력할 문자열변수   변수
anchor Checkbutton내 문자열 또는 이미지의 위치 center center, se, s, sw, w, nw, n, ne, e
justify Checkbutton내 문자열 정렬 center center, left, right
wraplength Checkbutton내 자동 줄내림 설정 넓이 0 숫자
font Checkbutton내 문자열 글꼴 TkDefaultFont font

 

3. Checkbutton의 이미지 관련

이름 기능 기본값 속성
image Checkbutton내 출력할 이미지    
bitmap Checkbutton내 출력할 기본이미지   info, error, warning, questheade, question, hourglass, gray75, gray50, gray25
selectimage Checkbutton이 체크상태일때 출력할 이미지    
compound Checkbutton 내 문자열과 이미지가 동시에있을때 이미지의 위치 none top, center, bottom, left, right, none

 

4. Checkbutton의 디자인 관련

이름 기능 기본값 속성
width Checkbutton의 길이 0 숫자
height Checkbutton의 높이 0 숫자
relief Checkbutton의 테두리 설정 flat flat, raised, groove, ridge, sunken, solid
overrelief Checkbutton의 테두리 설정 (마우스를 올렸을 때) raised flat, raised, groove, ridge, sunken, solid
foreground Checkbutton의 문자열 색상 SystemButtonFace color
background Checkbutton의 배경 색상 SystemButtonFace color
selectcolor 선택된 Checkbutton의 배경 색상 SystemWindow color
padx Checkbutton내 가로 여백 ( padding ) 1 숫자
pady Checkbutton내 세로 여백 ( padding ) 1 숫자
cursor Checkbutton내 마우스 커서 설정   pointer, arrow등 cursor속성
activeforground active 상태일때 Checkbutton의 문자열 색상 SystemButtonText color
activebackground active 상태일때 Checkbutton의 배경 색상 SystemButtonFace color
disabledforeground disabled 상태일때 Checkbutton의 문자열 색상 SystemDisabledText color
highlightcolor Checkbutton이 선택되었을때 하이라이트 색상 SystemWindowFrame color
highlightbackground Checkbutton이 선택되지 않았을때 하이라이트 색상 SystemButtonFace color
highlightthickness Checkbutton이 선택되었을때 하이라이트 두께 0 숫자