- [tkinter]canvas에서 button이 삭제되지 않음(canvas 상의 위젯, 아이템 삭제) 목차
canvas에서 버튼 삭제가 되지않아 4시간 이상을 투자했다
원인은 프로그램 실수..ㅎㅎ
self.button1_window = self.Canvas1.create_window(self.screenwidth/5 * 4,self.screenheight/6 * 5,\
window=self.rule_button)
self.button1_window의 값을 확인하니 47이 나왔다
버튼을 삭제하기 위해 사용한 문장에서
self.Canvas1.delete(self.button1_window)
self.button1_window의 값을 확인하니 237이 나왔다
id 값이 틀리다....이상하다
확인을 해보니
def one_person_break(self, n = 100):
self.button1_window = self.Canvas1.create_window(self.screenwidth/5 * 4,self.screenheight/6 * 5,\
window=self.rule_button)
if n == 0:
....
else:
self.one_person = self.after(100, self.one_person_break, n)
버튼이 100msec 마다 계속 생성되고 있었다
하나의 버튼을 제거해도 나머지 200 몇 개가 남아있으니.....
추가적으로
1) canvas.delete(all) <- 캔버스 상의 모든 위젯을 제거한다.
2) canvas.create_text(self.screenwidth/2,self.screenheight/2 , text = str(n//10),\
font = ("나눔고딕코딩", 27, "bold"), fill = "black", tags= ("label0",))
canvas.delete("label0") <- label0로 tag된 text만을 제거한다.
text_id = canvas.create_text(self.screenwidth/2,self.screenheight/2 , text = str(n//10),\
font = ("나눔고딕코딩", 27, "bold"), fill = "black")
canvas.delete(text_id ) <- text_id로 된 text만을 제거한다.
즐거운 시간되세요^^
'python & 라즈베리파이' 카테고리의 다른 글
[python]리스트 인덱스(Index), 리스트 자르기(Slicing), enumerate (0) | 2020.12.01 |
---|---|
[sqlite]parameters are not allowed in views (0) | 2020.11.30 |
[python]SQLite 날자 시간을 기본값으로 넣기 (0) | 2020.11.18 |
[python]나눗셈, 몫, 나머지를 구하는 방법 (0) | 2020.11.17 |
[python]리스트(list) 내용 삭제 및 빈 리스트 검사 (0) | 2020.11.13 |