Python tkinter 강좌 : 제 16강 – Scrollbar

   

Scrollbar (스크롤바)


1

Scrollbar을 이용하여 위젯스크롤을 적용하기 위한 스크롤바을 생성할 수 있습니다.



Scrollbar 사용


import tkinter

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

frame=tkinter.Frame(window)

scrollbar=tkinter.Scrollbar(frame)
scrollbar.pack(side="right", fill="y")

listbox=tkinter.Listbox(frame, yscrollcommand = scrollbar.set)
for line in range(1,1001):
   listbox.insert(line, str(line) + "/1000")
listbox.pack(side="left")

scrollbar["command"]=listbox.yview

frame.pack()

window.mainloop()


frame=tkinter.Frame(window)

scrollbar=tkinter.Scrollbar(frame)
scrollbar.pack(side="right", fill="y")

listbox=tkinter.Listbox(frame, yscrollcommand = scrollbar.set)
for line in range(1,1001):
   listbox.insert(line, str(line) + "/1000")
listbox.pack(side="left")

scrollbar["command"]=listbox.yview

frame.pack()

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

파라미터를 사용하여 스크롤바의 속성을 설정합니다.

스크롤바를 생성 후, 스크롤바의 객체를 생성하여 위젯과 위젯을 연결합니다.

이 후, command 파라미터를 적용할 위젯과 연결합니다.


  • Tip : 스크롤바연결된 위젯은 각각의 객체이므로 프레임으로 연결하여 사용하는 것을 권장합니다.



Scrollbar Method###


이름의미설명
set스크롤 부착위젯에 스크롤바 적용
set(좌측상단, 우측하단)스크롤 부착위젯에 스크롤바의 좌측상단 좌표와 우측하단 좌표에 고정
get()(좌측상단, 우측하단) 반환현재 스크롤바의 좌측상단 좌표와 우측하단 좌표를 반환



Scrollbar Parameter


스크롤바 형태 설정
이름의미기본값속성
width스크롤바의 너비17상수
relief스크롤바의 테두리 모양flatflat, groove, raised, ridge, solid, sunken
borderwidth=bd스크롤바의 테두리 두께0상수
background=bg          스크롤바의 배경 색상        SystemButtonFace                  color                  
elementborderwidth          스크롤 요소의 테두리 두께-1    상수
orient          스크롤의 표시 방향vertical  vertical, horizontal



스크롤바 형식 설정
이름의미기본값속성
cursor스크롤바의 마우스 커서 모양-커서 속성



스크롤바 상태 설정
이름의미기본값속성
activebackgroundactive 상태일 때 스크롤바의 배경 색상SystemButtonFacecolor
activerelief active 상태일 때 스크롤바의 테두리 모양raisedflat, groove, raised, ridge, solid, sunken



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



스크롤바 동작 설정
이름의미기본값속성
takefocusTab 키를 이용하여 위젯 이동 허용 여부TrueBoolean
command스크롤이 active 상태일 때 실행하는 메소드(함수)-메소드, 함수
jump스크롤이 동작할때 마다 command callback 호출FalseBoolean
repeatdelay버튼이 눌러진 상태에서 command 실행까지의 대기 시간300상수(ms)
repeatinterval버튼이 눌러진 상태에서 command 실행의 반복 시간100상수(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

  • highlightbackground를 설정하였을 경우, 스크롤바가 선택되지 않았을 때에도 두께가 표시됨

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

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


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

⤧  Next post Python tkinter 강좌 : 제 17강 – Scale ⤧  Previous post Python tkinter 강좌 : 제 15강 – Canvas