Python tkinter 강좌 : 제 5강 - Listbox
Listbox(리스트박스)
Listbox을 이용하여 목록을 불러와 추가, 제거 또는 선택하기 위한 리스트박스를 생성할 수 있습니다
Listbox 사용
import tkinter
window=tkinter.Tk()
window.title("YUN DAE HEE")
window.geometry("640x480+100+100")
window.resizable(False, False)
listbox = tkinter.Listbox(window, selectmode='extended', height=0)
listbox.insert(0, "1번")
listbox.insert(1, "2번")
listbox.insert(2, "2번")
listbox.insert(3, "2번")
listbox.insert(4, "3번")
listbox.delete(1, 2)
listbox.pack()
window.mainloop()listbox = tkinter.Listbox(window, selectmode='extended', height=0)
listbox.insert(0, "1번")
listbox.insert(1, "2번")
listbox.insert(2, "2번")
listbox.insert(3, "2번")
listbox.insert(4, "3번")
listbox.delete(1, 2)
listbox.pack()tkinter.Listbox(윈도우 창, 매개변수1, 매개변수2, 매개변수3, ...)을 사용하여 해당 윈도우 창에 표시할 리스트박스의 속성을 설정할 수 있습니다.
매개변수를 사용하여 리스트박스의 속성을 설정합니다.
리스트박스.insert(index, "항목")을 통하여 항목을 추가할 수 있습니다.
리스트박스.delete(start_index, end_index)를 통하여 항목을 삭제할 수 있습니다.
- Tip :
리스트박스.delete(index)를 통하여단일 항목만삭제할 수 있습니다.
Listbox Method
| 이름 | 의미 |
|---|---|
| insert(index, “항목”) | index 위치에 항목 추가 |
| delete(start_index, end_index) | start_index부터 end_index까지의 항목 삭제 |
| size() | 항목 개수 반환 |
| activate(index) | index 위치에 항목 선택 |
| curselection() | 선택된 항목을 튜플로 반환 |
| get(start_index, end_index) | start_index부터 end_index까지의 항목을 튜플로 반환 |
| index(index) | index에 대응하는 위치 획득 |
| nearest(y) | 현재 보이는 리스트박스의 항목 중 y에 가장 가까운 값을 반환 |
| see(index) | index가 보이도록 리스트박스의 위치 조정 |
| xview() | 가로스크롤 연결 |
| xview_scroll(num, str) | 가로스크롤의 속성 설정 |
| xview_moveto(num) | 가로스크롤 이동 (0~1) |
| yview() | 세로스크롤 연결 |
| yview_scroll(num, str) | 세로스크롤의 속성 설정 |
| yview_moveto(num) | 세로스크롤 이동 (0~1) |
-
xview_scroll
-
num: 스크롤 이동 횟수 -
strunits: 문자 너비로 스크롤pages: 위젯 너비로 스크롤
-
-
yview_scroll
-
num: 스크롤 이동 횟수 -
strunits: 줄 높이로 스크롤pages: 위젯 높이로 스크롤
-
Listbox Parameter
리스트박스 문자열 설정
| 이름 | 의미 | 기본값 | 속성 |
|---|---|---|---|
| listvariable | 리스트박스에 표시할 문자열을 가져올 변수 | - | - |
리스트박스 형태 설정
| 이름 | 의미 | 기본값 | 속성 |
|---|---|---|---|
| width | 리스트박스의 너비 | 20 | 상수 |
| height | 리스트박스의 높이 | 10 | 상수 |
| relief | 리스트박스의 테두리 모양 | flat | flat, groove, raised, ridge, solid, sunken |
| borderwidth=bd | 리스트박스의 테두리 두께 | 2 | 상수 |
| background=bg | 리스트박스의 배경 색상 | SystemButtonFace | color |
| foreground=fg | 리스트박스의 문자열 색상 | SystemButtonFace | color |
| selectbackground | 리스트박스 항목의 블록처리 배경 색상 | SystemHighlight | color |
| selectforeground | 리스트박스 항목의 블록처리 문자열 색상 | SystemHighlight | color |
| selectborderwidth | 리스트박스 항목의 블록처리 테두리 두께 | 0 | 상수 |
리스트박스 형식 설정
| 이름 | 의미 | 기본값 | 속성 |
|---|---|---|---|
| font | 리스트박스의 문자열 글꼴 설정 | TkDefaultFont | font |
| cursor | 리스트박스의 마우스 커서 모양 | - | 커서 속성 |
| xscrollcommand | 리스트박스의 가로스크롤 위젯 적용 | - | Scrollbar위젯.set |
| yscrollcommand | 리스트박스의 세로스크롤 위젯 적용 | - | Scrollbar위젯.set |
| exportselection | 리스트박스간의 항목 선택 유지 | True | Boolean |
| setgrid | 리스트박스의 격자 크기 조정 설정 | False | Boolean |
리스트박스 상태 설정
| 이름 | 의미 | 기본값 | 속성 |
|---|---|---|---|
| state | 상태 설정 | normal | normal, readonly, disabled |
| disabledforeground | disabeld 상태일 때 리스트박스의 문자열 색상 | SystemDisabledText | color |
리스트박스 하이라이트 설정
| 이름 | 의미 | 기본값 | 속성 |
|---|---|---|---|
| highlightcolor | 리스트박스가이 선택되었을 때 색상 | SystemWindowFrame | color |
| highlightbackground | 리스트박스가이 선택되지 않았을 때 색상 | SystemButtonFace | color |
| highlightthickness | 리스트박스가이 선택되었을 때 두께 (두께 설정) | 0 | 상수 |
리스트박스 동작 설정
| 이름 | 의미 | 기본값 | 속성 |
|---|---|---|---|
| takefocus | Tab 키를 이용하여 위젯 이동 허용 여부 | True | Boolean |
| activestyle | 리스트박스의 선택된 항목의 표시 형태 | underline | underline, none, dotbox |
| selectmode | 리스트박스의 항목 선택 방법 | browse | browse, single, mulitple, extended |
참고
width,height에0을 입력 시, 항목에 맞춰 크기가 설정됨
-
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
exportselection가True일 때 리스트박스가 2개 이상일 경우 1번 리스트 박스에서 항목 선택 후, 2번 리스트 박스에서 항목을 선택하면 1번 리스트 박스의 항목 선택 상태가 해제된다. 항목 선택을 유지하고자 할 때False로 사용
- 기본 설정은
normal상태의 설정을 의미함 (bg,fg등의 설정)
highlightbackground를 설정하였을 경우, 리스트박스가 선택되지 않았을 때에도 두께가 표시됨
- activestyle 파리미터
- dotbox : 선택된 항목에 점선 테두리 적용
- underline : 선택된 항목의 문자열에 밑줄 적용
- none : 선택된 항목에 블럭처리만 적용
- selectmode 매개변수
- browse : 단일 선택, 방향키 이동 시 선택
- single : 단일 선택, 방향키 이동 후 스페이스바로 선택
- multiple : 다중 선택, 마우스 클릭이나 방향키 이동 후 스페이스바로 선택
- extended : 다중 선택, 마우스 드래그나 쉬프트키 + 방향키 이동으로 선택
공유하기
Kakao
Naver
Twitter
LinkedIn
Facebook
댓글 남기기