Python tkinter 강좌 : 제 16강 - Scrollbar
Scrollbar(스크롤 바)

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 | 스크롤바의 테두리 모양 | flat | flat, groove, raised, ridge, solid, sunken |
| borderwidth=bd | 스크롤바의 테두리 두께 | 0 | 상수 |
| background=bg | 스크롤바의 배경 색상 | SystemButtonFace | color |
| elementborderwidth | 스크롤 요소의 테두리 두께 | -1 | 상수 |
| orient | 스크롤의 표시 방향 | vertical | vertical, horizontal |
스크롤바 형식 설정
| 이름 | 의미 | 기본값 | 속성 |
|---|---|---|---|
| cursor | 스크롤바의 마우스 커서 모양 | - | 커서 속성 |
스크롤바 상태 설정
| 이름 | 의미 | 기본값 | 속성 |
|---|---|---|---|
| activebackground | active 상태일 때 스크롤바의 배경 색상 | SystemButtonFace | color |
| activerelief | active 상태일 때 스크롤바의 테두리 모양 | raised | flat, groove, raised, ridge, solid, sunken |
스크롤바 하이라이트 설정
| 이름 | 의미 | 기본값 | 속성 |
|---|---|---|---|
| highlightcolor | 스크롤바가 선택되었을 때 색상 | SystemWindowFrame | color |
| highlightbackground | 스크롤바가 선택되지 않았을 때 색상 | SystemButtonFace | color |
| highlightthickness | 스크롤바가 선택되었을 때 두께 (두께 설정) | 0 | 상수 |
스크롤바 동작 설정
| 이름 | 의미 | 기본값 | 속성 |
|---|---|---|---|
| takefocus | Tab 키를 이용하여 위젯 이동 허용 여부 | True | Boolean |
| command | 스크롤이 active 상태일 때 실행하는 메서드(함수) | - | 메서드, 함수 |
| jump | 스크롤이 동작할때 마다 command callback 호출 | False | Boolean |
| 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가 계속 실행됨
공유하기
Kakao
Naver
Twitter
LinkedIn
Facebook
댓글 남기기