728x90
반응형

"Life is too short, You need python"
Entry Widget에서는 Text 삭제시 위젯명.delete(0, END)로 삭제 명령이 수행되는 반면 Text Widget의 출력 Text를 지우는 명령 을 동일한 방법으로 수행 시 잘못된 텍스트 인덱스 오류가 발생하게 됩니다. 이 오류의 해결 방법에 대해 알아보도록 하겠습니다.
오류 코드
아래와 같이 코드를 입력한 후 실행합니다.
( Input )
from tkinter import *
def clear():
Entry_Box.delete(0, END) # 정상동작
Text_Box.delete(0, END) # 에러발생
root = Tk()
Entry_Box = Entry(root, width = 50)
Entry_Box.grid(row = 0, column = 0)
Button(root, text = "clear", width = 10, command = clear).grid(row = 1, column = 0, sticky = W)
Text_Box = Text(root, width = 100, height = 10)
Text_Box.grid(row = 3, column = 0)
Text_Box.insert(END, "Test")
root.mainloop()
( Output )

clear 버튼 클릭 시 Entry의 Text는 삭제되나 Textbox의 Text들은 삭제되지 않고 Tcl.Error가 발생합니다.
해결 ( 오류 코드 수정 )
아래와 같이 0을 1.0으로 수정 합니다.
( Input )
Text_Box.delete(1.0, END) # 0 → 1.0으로 변경
( Output )

Text Box 내 Text들이 성공적으로 삭제된 것을 볼 수 있습니다.
마무리
Textbox delete 수행 시 오류와 해결 방법에 대해 알아보았습니다.
728x90
반응형