Python tkinter 강좌 : 제 3강 – Button

   

Button (버튼)


Button을 이용하여 메소드 또는 함수 등을 실행시키기 위한 단추를 생성할 수 있습니다.



Button 사용


import tkinter

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

count=0

def countUP():
    global count
    count +=1
    label.config(text=str(count))

label = tkinter.Label(window, text="0")
label.pack()

button = tkinter.Button(window, overrelief="solid", width=15, command=countUP, repeatdelay=1000, repeatinterval=100)
button.pack()

window.mainloop()


count=0

def countUP():
    global count
    count +=1
    label.config(text=str(count))

label = tkinter.Label(window, text="0")
label.pack()

button = tkinter.Button(window, overrelief="solid", width=15, command=countUP, repeatdelay=1000, repeatinterval=100)
button.pack()

tkinter.Button(윈도우 창, 파라미터1, 파라미터2, 파라미터3, ...)을 사용하여 해당 윈도우 창에 표시할 버튼의 속성을 설정할 수 있습니다.

파라미터를 사용하여 버튼의 속성을 설정합니다.

파라미터 중 command를 이용하여 사용자 정의 함수 : countUP을 실행시킬 수 있습니다.



Button Method###


이름의미
invoke()버튼 실행
flash()깜빡임


  • Tip : invoke() : 버튼을 클릭했을 때와 동일한 실행
  • Tip : flash() : normal 상태 배경 색상과 active 상태 배경 색상 사이에서 깜빡임



Button Parameter


버튼 문자열 설정
이름의미기본값속성
text버튼에 표시할 문자열--
textvariable버튼에 표시할 문자열을 가져올 변수--
anchor버튼안의 문자열 또는 이미지의 위치centern, ne, e, se, s, sw, w, nw, center
justify버튼의 문자열이 여러 줄 일 경우 정렬 방법centercenter, left, right
wraplength자동 줄내림 설정 너비0상수



버튼 형태 설정
이름의미기본값속성
width버튼의 너비0상수
height버튼의 높이0상수
relief버튼의 테두리 모양flatflat, groove, raised, ridge, solid, sunken
    overrelief          버튼에 마우스를 올렸을 때 버튼의 테두리 모양            raised      flat, groove, raised, ridge, solid, sunken
borderwidth=bd버튼의 테두리 두께2상수
background=bg          버튼의 배경 색상      SystemButtonFace                  color                
foreground=fg        버튼의 문자열 색상        SystemButtonFace                  color                  
padx버튼의 테두리와 내용의 가로 여백1상수
pady버튼의 테두리와 내용의 세로 여백1상수



버튼 형식 설정
이름의미기본값속성
bitmap버튼에 포함할 기본 이미지-info, warring, error, question, questhead, hourglass, gray12, gray25, gray50, gray75
image버튼에 포함할 임의 이미지--
compound버튼에 문자열과 이미지를 동시에 표시할 때 이미지의 위치nonebottom, center, left, none, right, top
font버튼의 문자열 글꼴 설정TkDefaultFontfont
cursor버튼의 마우스 커서 모양-커서 속성



버튼 상태 설정
이름의미기본값속성
state상태 설정normalnormal, active, disabled
activebackgroundactive 상태일 때 버튼의 배경 색상SystemButtonFacecolor
activeforegroundactive 상태일 때 버튼의 문자열 색상SystemButtonTextcolor
disabledforegrounddisabeld 상태일 때 버튼의 문자열 색상SystemDisabledTextcolor



버튼 하이라이트 설정
이름의미기본값속성
highlightcolor버튼이 선택되었을 때 색상SystemWindowFramecolor
highlightbackground버튼이 선택되지 않았을 때 색상SystemButtonFacecolor
highlightthickness버튼이 선택되었을 때 두께 (두께 설정)0상수



버튼 동작 설정
이름의미기본값속성
takefocusTab 키를 이용하여 위젯 이동 허용 여부TrueBoolean
command버튼이 active 상태일 때 실행하는 메소드(함수)-메소드, 함수
repeatdelay버튼이 눌러진 상태에서 command 실행까지의 대기 시간0상수(ms)
repeatinterval버튼이 눌러진 상태에서 command 실행의 반복 시간0상수(ms)



참고

  • 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

  • 기본 설정은 normal 상태의 설정을 의미함 (bg, fg 등의 설정)

  • highlightbackground를 설정하였을 경우, 버튼이 선택되지 않았을 때에도 두께가 표시됨

  • repeatdelay=100 일 경우, 누르고 있기 시작한 0.1초 후command가 실행됨

  • repeatdelay=1000, repeatinterval=100 일 경우, 1초 후에 command가 실행되며 0.1초마다 버튼을 뗄 때까지 command가 계속 실행됨

  • repeatinterval 파라미터는 repeatdelay 파라미터와 같이 사용해야함



도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post Python tkinter 강좌 : 제 4강 – Entry ⤧  Previous post Python tkinter 강좌 : 제 2강 - Label