[python] Tkinter 리스트박스 위젯

Tkinter는 파이썬에서 GUI(Graphical User Interface)를 개발하기 위해 사용하는 라이브러리입니다. Tkinter를 사용하면 사용자 인터페이스를 생성하고 다양한 위젯을 추가할 수 있습니다. 이 중에서도 리스트박스(Listbox) 위젯은 여러 항목을 선택할 수 있는 목록을 제공합니다.

리스트박스 생성하기

리스트박스 위젯은 Tkinter의 Listbox 클래스를 사용하여 생성합니다. 다음은 리스트박스를 생성하는 예제 코드입니다.

import tkinter as tk

window = tk.Tk()

listbox = tk.Listbox(window)
listbox.pack()

window.mainloop()

위 코드에서 tkinter 모듈을 tk로 임포트하고, Tk() 클래스를 사용하여 메인 윈도우를 생성합니다. 그 후 Listbox 클래스를 사용하여 리스트박스 위젯을 생성합니다. pack() 메서드를 사용하여 리스트박스 위젯을 메인 윈도우에 배치한 후, mainloop() 메서드로 이벤트 루프를 시작합니다.

리스트박스에 항목 추가하기

리스트박스에 항목을 추가하기 위해서는 insert() 메서드를 사용합니다. 다음은 리스트박스에 3개의 항목을 추가하는 예제 코드입니다.

listbox.insert(0, "Apple")
listbox.insert(1, "Banana")
listbox.insert(2, "Orange")

각 항목은 인덱스와 항목 내용으로 지정됩니다. 인덱스는 0부터 시작하며, 항목이 추가될 위치를 나타냅니다.

선택된 항목 가져오기

리스트박스에서 선택된 항목을 가져오기 위해서는 curselection() 메서드를 사용합니다. 다음은 선택된 항목의 인덱스를 출력하는 예제 코드입니다.

selected_index = listbox.curselection()
print(selected_index)

curselection() 메서드는 선택된 항목의 인덱스를 튜플 형태로 반환합니다. 하나의 항목만 선택된 경우에도 튜플로 반환되므로, 인덱스를 사용하기 위해서는 첫 번째 요소를 선택하면 됩니다.

선택된 항목 삭제하기

리스트박스에서 선택된 항목을 삭제하기 위해서는 delete() 메서드를 사용합니다. 다음은 선택된 항목을 삭제하는 예제 코드입니다.

selected_index = listbox.curselection()
if selected_index:
    listbox.delete(selected_index[0])

curselection() 메서드를 사용하여 선택된 항목의 인덱스를 가져온 후, 해당 인덱스의 항목을 delete() 메서드를 이용해 삭제합니다. 반드시 선택된 항목이 있는지 확인 후 삭제해야 합니다.

Conclusion

이제 여러분은 Tkinter를 사용하여 리스트박스 위젯을 생성하고 항목을 추가/삭제하는 방법을 알게 되었습니다. 이를 응용하여 다양한 GUI 프로그램을 개발할 수 있습니다.

더 자세한 내용은 Tkinter 공식 문서를 참고하세요.