for i in range(random.randint(1,4)):
xos=[150,200,250,300,350,400,450,500,550,600,650,700,750,800,850]
yos=[150,200,250,300,350,400,450,500,550,600,650]
xos_=random.choice(xos)
yos_=random.choice(yos)
object=canvas.create_image(xos_,yos_,image=postava)
read_=read.replace("[","").replace("]","").replace("'","").replace("\\n","").replace("\\","")
loot.write(read_+"\n")
FOR에서 캔버스에 이미지를 만들고 있고 필요할 때 제거하고 싶지만 마지막에만 tag (name) 개체가 있으므로 입력하면 canvas.delete (object) 마지막 이미지 만 삭제됩니다. 그래서 특정 위치 (이름 / 태그가 아님)에있는 개체를 삭제할 수 있는지 알고 싶습니다.
확실한. 시나리오 (A) 마우스 왼쪽 버튼을 클릭하면 캔버스 객체를 식별하고 마우스 왼쪽 버튼을 놓으면 객체를 삭제한다고 가정 해 보겠습니다.
1 단계 :Button-1
개체를 삭제 하기 위해 바인딩하는 데 사용하는 콜백 / 메서드에 이러한 명령을 포함 합니다.
mx = canvas.canvasx(event.x) #Translate mouse x screen coordinate to canvas coordinate
my = canvas.canvasy(event.y) #Translate mouse y screen coordinate to canvas coordinate
self.canvasobject = canvas.find_closest(mx, my, halo=5) # get canvas object ID of where mouse pointer is
print(self.canvasobject) #For you to visualize the canvas object number
2 단계 :ButtonRelease-1
객체를 삭제 하기 위해 바인딩하는 데 사용하는 콜백 / 메소드에 이러한 명령을 포함 합니다.
canvas.delete(self.canvasobject) #delete the selected canvas object
시나리오 (B) : 개체 캔버스 x, y 좌표를 이미 알고 있다고 가정하면 단일 명령을 실행하여 캔버스 개체를 삭제할 수 있습니다.
canvas.delete(canvas.find_closest(x, y, halo=5))
내가 사용한 캔버스 방법과 다른 캔버스 방법에 대한 설명 은이 웹 페이지 를 참조하십시오 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다