2017-12-29 7 views
-1

나는 (큰 프로젝트의 일부)이 코드를 실행하면 : 오류 제공Canvas의 개체에 place 메서드를 사용하면 오류가 발생하는 이유는 무엇입니까?

def Initialize (event,tk): 
    event.delete("all") 
    parch = tk.PhotoImage(file = "Parchment.png") 
    parchment = event.create_image(175, 25, image = parch, anchor = "nw") 
    parchment.place(175, 25)` 

: 기술적으로

parchment.place(175, 25) 
AttributeError: 'int' object has no attribute 'place' 

를, 모든 것이 잘 작동하고 작업을 수행; 하지만 오류 메시지가 발생하는 것은 좋은 방법이 아닙니다.

+4

분명히 '양피지'는 숫자이며,'place' 메소드가 없습니다. 'create_image'가 반환하는 것을보기 위해 문서를 확인하십시오. 이 방법이'parch'를 돌연변이시키는 것이 아니라고 확신합니까? 이 경우'parch.place (175, 25) '로 변경하십시오. – Carcigenicate

+2

'create_image'와 다른'create_ *'는 위젯을 만들지 않고 캔버스에'place()'/'grid()'/'pack()'메소드가없는 객체를 필요로하지 않기 때문에 그들은 위젯이 아니기 때문에). – furas

+0

나는 그 방법이 필요 없다는 것을 이해한다. 그럼에도 불구하고 그 방법이 없다면 원하는 이미지가 나타나지 않을 것이다. – Salad

답변

2

당신이 here을 볼 수있는 바와 같이, create_image 방법이 생성 이미지 객체의 정수 ID 번호를 반환합니다. 모든 캔버스 개체 작성 메서드는 이러한 ID를 반환합니다.

canvas methods을 사용하면 ID가 지정된 객체와 상호 작용할 수 있습니다 (예 : .move 메소드를 사용하여 이동).

+1

위의 질문은 롤백 편집이 필요하다고 생각합니다.이 대답은 더 관련이 깊기 때문입니다. – Nae

+0

이미지가 "잃어버린"방법에 대한 편집 이후의 것들은 완전히 다른 질문입니다. –

+0

예, 동의합니다. 나는 이전의 편집을 [시도했다] (https://meta.stackoverflow.com/q/361267/7032856). 그러나 분명히 롤백과 정확히 같지 않고 내가 질문을 바꾸는 것처럼 판단되었습니다. – Nae