[tkinter]canvas에서 button이 삭제되지 않음(canvas 상의 위젯, 아이템 삭제)

2020년 11월 18일 by 진아사랑해

    [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(selfn = 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(100self.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만을 제거한다.

 

즐거운 시간되세요^^

 

 

 

 

 

 

반응형