*본 코드는 PC(윈도)에서도 동작합니다.
[목표] 리스트 박스에 아이템(항목) 추가하기
앞서 엔트리를 통해 사용자로부터 한 줄짜리 문자열을 입력받아보았습니다.
이번에는 리스트 박스를 활용해 아이템(항목)을 넣고 꺼내는 등 조작해 보겠습니다.
리스트 박스는 우리말로 '목록 상자' 정도 되겠네요.
항목들을 담고 있는 상자라고 생각해 보세요.
1. 리스트 박스 만들기
다음과 같이 기본 코드에 음영 표시한 코드 여섯 줄을 추가하면 리스트 박스가 표시됩니다.
from tkinter import * root = Tk() root.title("GUI프로그래밍") root.geometry("320x200") lbox = Listbox(root, selectmode="extended", height=0) lbox.insert(0,"라이언") lbox.insert(1,"프로도") lbox.insert(2,"무지") lbox.insert(END,"네오") lbox.pack() root.mainloop() |
![]() |
추가 코드 2행~5행: 리스트 박스에 끼워 넣을(insert) 항목들을 인덱스(위치)와 함께 표시합니다.
lbox.insert(0,"라이언")은
목록 상자의 인덱스 0번째 위치(맨 윗자리)에 "라이언"이란 항목을 넣겠다는 의미입니다.
5행의 인덱스 END는 가장 마지막에 입력된 항목 다음 위치(즉, 인덱스 3의 위치)를 가리킵니다.
[추가 설명]Listbox() 함수의 속성 : height, selectmode
1행에서는 Listbox()함수의 두 가지 속성(height, selectmode)에 주목하세요.
1) height 속성을 보세요. 코드처럼 0을 지정하면 위 결과처럼 모든 항목들이 표시됩니다.
만약 3을 지정하면 항목 중 3개만 표시됩니다.
2) selectmode 속성 값으로 extended를 지정할 경우, 리스트 박스에 있는 항목을 두 개 이상 선택할 수 있고, single을 지정하면 항목을 한 개만 선택할 수 있습니다.
2. 버튼 클릭 시 리스트 박스에 항목 추가하기
리스트 박스에 새로운 항목을 추가하고자 합니다.
아래처럼 음영 표시된 코드 네 줄을 추가하면 리스트 박스에 "콘"이라는 항목을 새로 추가됩니다.
from tkinter import * root = Tk() root.title("GUI프로그래밍") root.geometry("320x200") lbox = Listbox(root, selectmode="extended", height=0) lbox.insert(0,"라이언") lbox.insert(1,"프로도") lbox.insert(2,"무지") lbox.insert(END,"네오") lbox.pack() def btnist(): lbox.insert(END,"콘") btn1 = Button(root, text="추가", command=btnist) btn1.pack() root.mainloop() |
![]() |
추가 코드 중
3~4행: "추가" 버튼을 만듭니다.
2행 : 추가 버튼 클릭 시 작동하는 함수 btnist를 정의합니다.
3행 : lbox.insert(END, "콘")
인덱스 END는 가장 마지막에 입력된 항목(네오) 다음 위치(즉, 인덱스 4의 위치)를 가리킵니다.
3. 레이블에 입력한 항목을 리스트 박스에 추가하기
앞 서 배운 레이블을 활용해 볼게요.
레이블에 입력한 문자열을 리스트 박스에 추가하겠습니다.
다음은 앞 선 코드에 새롭게 두 줄을 코드 추가하고 한 줄을 수정했습니다. ( *취소선 표시된 코드는 삭제하고 그 아래 코드로 대체하세요.)
from tkinter import * root = Tk() root.title("GUI프로그래밍") root.geometry("320x200") lbox = Listbox(root, selectmode="extended", height=0) lbox.insert(0,"라이언") lbox.insert(1,"프로도") lbox.insert(2,"무지") lbox.insert(END,"네오") lbox.pack() ent = Entry(root, width=20) ent.pack() def btnist(): btn1 = Button(root, text="추가", command=btnist) btn1.pack() root.mainloop() |
![]() |
![]() |
[코드 설명]
추가한 세 줄의 코드 중
1~2행 : 엔트리 추가 코드
3행 : lent.get()에 주목하세요. 엔트리에 된 입력된 문자열을 가져오는(get) 코드
그림 두 개는 제이지와 춘식을 순서대로 엔트리에 입력하고 추가한 결과입니다.
'코딩 > 파이썬 활용 프로젝트' 카테고리의 다른 글
파이썬 GUI_8-1 : 미니 프로젝트_ 숫자 맞히기 게임 만들기 (0) | 2023.01.14 |
---|---|
파이썬 GUI_7_리스트 박스 항목 삭제 (0) | 2022.12.07 |
파이썬 GUI_5_엔트리_버튼 클릭 시 입력 문자열 가져오기 (2) | 2022.12.07 |
파이썬 GUI_4_ 레이블과 버튼 활용1 (버튼 함수 정의) (0) | 2022.12.07 |
파이썬 GUI_3_레이블 만들기 (0) | 2022.12.07 |
댓글