Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 Tkinter Listbox 항목의 텍스트를 변경하는 방법

애플리케이션에서 여러 항목을 목록 형태로 표시해야 할 때, Tkinter는 Listbox 위젯을 제공합니다. Listbox는 항목들을 세로 방향으로 나열하여 보여주는 위젯으로, 다양한 GUI 프로그램에서 선택 목록을 구성할 때 널리 사용됩니다.

Listbox 항목의 텍스트를 변경하는 원리

Tkinter의 Listbox는 특정 항목의 텍스트를 직접 수정하는 기능을 제공하지 않습니다. 따라서 항목의 텍스트를 변경하려면 다음과 같은 절차를 거쳐야 합니다.

  1. listbox.curselection() 메서드로 현재 선택된 항목의 인덱스를 가져옵니다.
  2. 선택된 항목을 listbox.delete(index) 메서드로 삭제합니다.
  3. 새로운 텍스트를 listbox.insert(위치, 항목) 메서드로 삽입합니다.

예제 코드

# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk

# tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()

# 윈도우 크기 설정
win.geometry("700x350")

# Listbox 위젯 생성
lb = Listbox(win)
lb.pack(expand=True, fill=BOTH)

# Listbox 항목을 편집하는 함수 정의
def edit():
    for item in lb.curselection():
        lb.delete(item)
        lb.insert("end", "foo")

# Listbox에 항목 추가
lb.insert("end", "item1", "item2", "item3", "item4", "item5")

# 항목을 편집·삭제하는 버튼 추가
ttk.Button(win, text="Edit", command=edit).pack()

win.mainloop()

실행 결과

위 코드를 실행하면 항목 목록이 포함된 윈도우가 화면에 나타납니다.

파이썬 Tkinter Listbox 항목의 텍스트를 변경하는 방법

이제 목록에서 항목을 하나 선택한 뒤 "Edit" 버튼을 클릭하면, 선택된 항목이 삭제되고 그 자리에 새로운 텍스트("foo")가 삽입되어 목록이 갱신됩니다.

파이썬 Tkinter Listbox 항목의 텍스트를 변경하는 방법

추가 팁

  • 여러 항목을 동시에 선택할 수 있도록 하려면 selectmode=MULTIPLE 또는 selectmode=EXTENDED 옵션을 사용하세요.
  • 특정 위치에 항목을 삽입하고 싶다면 insert("end", ...) 대신 원하는 인덱스 번호를 지정할 수 있습니다.
  • 선택된 항목이 없는 상태에서 버튼을 클릭하면 아무 일도 일어나지 않으므로, 실제 애플리케이션에서는 curselection()의 반환값이 비어 있는지 확인하는 예외 처리를 추가하는 것이 좋습니다.